home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
AmigActive 23
/
AACD 23.iso
/
AACD
/
Online
/
opennap
/
ChangeLog
< prev
next >
Wrap
Text File
|
2001-06-08
|
176KB
|
5,005 lines
2001-03-03 drscholl <drscholl@users.sourceforge.net>
* manual.html, napigator.c, opennap.h, sample.config, Makefile.in, config.c, configure, init.c, main.c:
check connection result to stats server.
added report_ip, report_port, report_name for use with napigator stats
server.
2001-03-01 drscholl <drscholl@users.sourceforge.net>
* Makefile.am, Makefile.in, configure, configure.in, init.c:
enable signal handling under win32/cygwin
2001-02-28 drscholl <drscholl@users.sourceforge.net>
* manual.html, opennap.h, Makefile.in, config.c, configure, configure.in, login.c:
added boolean restrict_registratration to disallow auto registration by
clients. useful for implementing closed servers.
* sample.block:
compacted sample.block to group names by the first letter. this reduces
the number of expressions that are needed to be matched against each
shared file.
* configure.in:
fixed bug #233526 should use $enableval instead of $withval for the
chroot test in configure.in
* main.c: added poll() debugging
2001-02-26 drscholl <drscholl@users.sourceforge.net>
* ChangeLog, NEWS, README, manual.html, sample.block:
updated ChangeLog, NEWS, manual.html
2001-02-23 drscholl <drscholl@users.sourceforge.net>
* add_file.c, config.c, opennap.h:
added allow_share config boolean option to disallow sharing files
completely
* filter.c:
commented out log message in is_blocked()
* Makefile.in, add_file.c, config.c, configure, configure.in, filter.c, sample.block:
block file changed to list of regular expressions instead of hash table of
words. this more effectively blocks individual files without affecting
as many unrelated files.
2001-02-23 drscholl <drscholl@users.sourceforge.net>
* add_file.c, config.c, opennap.h:
added allow_share config boolean option to disallow sharing files
completely
* filter.c:
commented out log message in is_blocked()
* Makefile.in, add_file.c, config.c, configure, configure.in, filter.c, sample.block:
block file changed to list of regular expressions instead of hash table of
words. this more effectively blocks individual files without affecting
as many unrelated files.
* sample.block, Makefile.am:
added sample block file
* add_file.c, filter.c, init.c, opennap.h:
added `block' file which contains one word per line. if a shared file
contains any of the keywords in the file, the file will not be indexed at
all, and thus will not be able to be xferred. note that if the filename
exists on the remote server, no blocking is done locally, so all of the
servers must act in conjunction to block inappropriate material.
2001-02-17 drscholl <drscholl@users.sourceforge.net>
* configure, configure.in, main.c, napigator.c, opennap.h:
global.fdmap should be sized according to global.max_fd
2001-02-15 drscholl <drscholl@users.sourceforge.net>
* napigator.c:
hash string was not \0 terminated
* Makefile.am, Makefile.in, add_file.c, announce.c, ban.c, browse.c, buffer.c, change.c, channel.c, class.c, client_quit.c, config.c, debug.c, download.c, fast_snprintf.c, filter.c, free_user.c, getopt.c, glob.c, handler.c, hash.c, hashlist.c, hotlist.c, init.c, join.c, kick.c, kill_user.c, level.c, list.c, list_channels.c, list_users.c, login.c, main.c, metaserver.c, mkpass.c, motd.c, muzzle.c, napigator.c, network.c, opennap.h, part.c, part_channel.c, ping.c, privmsg.c, proxy-client.c, public.c, redirect.c, remove_connection.c, remove_file.c, resume.c, sample.config, search.c, server_connect.c, server_login.c, serverlib.c, setup.c, spyserv.c, synch.c, topic.c, upload_complete.c, userdb.c, usermode.c, util.c, whois.c:
updated copyright date to cover 2001
added add_fd()/remove_fd() to handle manipulation of the global.poll array
added support for pushing stats to napigator as part of their new
architecture.
2001-02-13 drscholl <drscholl@users.sourceforge.net>
* main.c, remove_connection.c:
fixed crash on server shutdown with debugging enabled
* main.c:
fixed broken compile with select()-only support
* config.c, handler.c, opennap.h:
added `min_read' variable to log() when only reading a small amount of data
from a server link
* server_login.c, server_usage.c, synch.c, timer.c, userdb.c, util.c, whois.c, TODO, ban.c, buffer.c, channel.c, free_user.c, handler.c, init.c, join.c, login.c, main.c, opennap.h, search.c:
added a global_t to use as a global namespace
when using poll(), keep a global.fdmap[] array to map the fd to the
global.poll[] entry associated with the fd to allow skipping of unimportant
descriptors
2001-02-08 drscholl <drscholl@users.sourceforge.net>
* README, metaserver.c, privmsg.c:
sig_meta was never reset
2001-02-05 drscholl <drscholl@users.sourceforge.net>
* Makefile.am, Makefile.in, channel.c, class.c, configure, configure.in, kick.c, main.c, metaserver.c, opennap.h, sample.conf, sample.config:
renamed sample.conf -> sample.config
remove TS code from all but channel_op.
servers will no longer correct channel ops. based upon the timestamp they
will just affect the local server and assume the remote side will do the
same.
2001-02-02 drscholl <drscholl@users.sourceforge.net>
* ChangeLog, NEWS:
updated ChangeLog
updated NEWS file
2001-01-31 drscholl <drscholl@users.sourceforge.net>
* metaserver.c:
added q's metaserver patch to read servers from a config file
2001-01-30 drscholl <drscholl@users.sourceforge.net>
* buffer.c, config.c, main.c, opennap.h:
added `server_chunk' config var to control minimum packet size sent between
servers.
2001-01-26 drscholl <drscholl@users.sourceforge.net>
* login.c:
skipped already killed clients when looking to eject nonsharing users
* whois.c:
whowas should require mod+ level, should have change which_server
2001-01-24 drscholl <drscholl@users.sourceforge.net>
* main.c, userdb.c:
fixed buffer overrun in main.c when initializing the Poll[] and Clients[]
arrays
2001-01-23 drscholl <drscholl@users.sourceforge.net>
* main.c:
fixed bug where opennap allocated 1 extra struct pollfd
* buffer.c, class.c, handler.c, login.c, main.c, opennap.h, server_connect.c, server_usage.c:
removed dup2() and added a .id to the CONNECTION* struct. use Poll[con->id]
instead of Poll[con->fd] since the fd's are no longer in order.
* class.c, debug.h:
local var acc was never initialized in generic_acl_add()
* class.c:
generic_acl_load should not assume the file is already sorted
fixed generic_acl_del to handle masks correctly
* class.c, main.c, opennap.h:
fixed broken class add routines
2001-01-19 drscholl <drscholl@users.sourceforge.net>
* class.c:
don't print msg if we recv a class command with the same count
* change.c, main.c, privmsg.c, whois.c:
don't allow admin to change elite password
move `operserv server' to `nickserv server' and only require user+ level
2001-01-16 drscholl <drscholl@users.sourceforge.net>
* FAQ, config.c, list_users.c, login.c, main.c, manual.html, opennap.h, server_connect.c:
added variable to turn off ghost kills in order to reduce cross server
traffic
added auto_link boolean variable
2001-01-09 drscholl <drscholl@users.sourceforge.net>
* class.c, opennap.h:
if any i:lines exist, don't allow a connection unless the ip matches an item
on the list.
don't use mask when its 0xffffffff during a acl_sync()
added prototypes for new acl functions
* network.c, class.c:
fixed sorted insert in generic_acl_add()
* class.c, network.c:
fixed coredump in generic_acl_del() with no host
is_address() should use a mask of 0xffffffff when no mask is given
sort ipmasks using compare_ipmask
* class.c, handler.c, init.c, main.c, opennap.h, synch.c:
added support for e:lines, d:lines and i:lines
added ability to delete connection class
* class.c, handler.c, opennap.h:
added generic acl list handler functions
* main.c: sigh. more poll() checking
* main.c, channel.c:
added more poll() debugging
load_channels() did not close the fd for the channels file
2001-01-08 drscholl <drscholl@users.sourceforge.net>
* list_users.c:
forgot to remove ntohl() from list_users.c. ip and mask are already in
little endian format
* class.c, list_users.c, network.c:
fixed is_address() to return little endian format
* TODO, class.c, config.c, free_user.c, init.c, login.c, main.c, manual.html, opennap.h, whois.c:
added support for blocking clients that reconnect or register nicks too fast
* list_users.c:
fixed potential segfault if the ip was missing in a list_users() command
with the `i' flag
* class.c, list_users.c:
fixed list_users() to accept a mask
class.c needs sys/types.h
* configure, configure.in, hash.h, main.c, metaserver.c, network.c, opennap.h, server_links.c, channel.c:
added support for compining under Cygwin
* TODO, add_file.c, class.c, opennap.h, search.c:
add support for prefixing search terms with a minus sign (`-') to indicate
words which should be excluded when matching. this augments the FILENAME
EXCLUDES support which already exists
* class.c:
notify_mods() message didn't have the mask displayed
* class.c, configure, configure.in, handler.c, init.c, kill_user.c, list_users.c, login.c, main.c, network.c, opennap.h, util.c, Makefile.am, Makefile.in:
removed tcp-wrappers support. it was messing up the newly rewritten
select/poll input handler, and it really isn't needed anymore.
added colten edward's connection class patch (with cleanups)
* TODO, browse.c, config.c, main.c, manual.html, opennap.h, server_connect.c:
added remote_browse config var to turn off remote browsing
* opennap.h:
need extra level of parenthesis around the BSWAP macros
2001-01-07 drscholl <drscholl@users.sourceforge.net>
* part.c, topic.c:
part() could send an error message to a remote server
fixed part() and topic() to prefix error messages with the command that was
executed
* server_connect.c:
don't use the server's external ip address when connecting a local server
2001-01-06 drscholl <drscholl@users.sourceforge.net>
* add_file.c, browse.c, download.c, free_user.c, handler.c, join.c, login.c, main.c, network.c, opennap.h, server_connect.c, server_login.c, whois.c:
added even more debugging for poll() support
use BSWAP32() in calls to my_ntoa()
* FAQ, README, kill_user.c, main.c, manual.html, network.c, remove_connection.c, search.c, server_connect.c, server_login.c:
added fd numbers to the log() statements in add_client()
updated FAQ
cleanup fixes for failure modes in network.c
updated manual with recently variable additions
2001-01-05 drscholl <drscholl@users.sourceforge.net>
* buffer.c, change.c, main.c, opennap.h, search.c:
check for ENOBUFS after WRITE() to check for non-permanent error
don't allow non-mods+ to nuke another users
call expire_searches() directly from the main loop rather than from a timer
to prevent searches from backing up too much
* README, buffer.c, main.c, opennap.h, search.c, server_usage.c, timer.c:
store pending remote search requests in a fifo order, with a pointer to the
tail for fast appends.
added # of pending searches to the server stats reply
added timer_set_interval() to allow modifying the interval at which existing
events are rescheduled
add_timer() now returns the reference number of the created timer
allocate timer refnums in strictly ascending order
reworked send_queued_data() to write() until there is no more data queued,
or until the socket's buffer is full. also, for server links we want to
always make sure there is at least 16k of compressed output available in
order to keep the socket's output buffer full, and avoid unnecessary trips
through the main loop.
2001-01-04 drscholl <drscholl@users.sourceforge.net>
* main.c, remove_connection.c, search.c:
fixed consistency checks for Clients[] and Poll[] arrays
test for searches <= 0 in search() was incorrect. a 0 value is perfectly
valid (no searches yet).
* buffer.c, handler.c, main.c, network.c, opennap.h, search.c, server_connect.c:
change set_read and set_write to macros
rewrote add_client to include common code from accept_connection() and
try_connect()
added extensive checking in add_client and reap_dead_connnection to ensure
that the Clients[] and Poll[] arrays look correct
* main.c, search.c:
fixed bug in generate_request. need to check for type == -1 (ANY)
fixed typo in main.c
2001-01-02 drscholl <drscholl@users.sourceforge.net>
* COPYING, INSTALL, Makefile.in, aclocal.m4, configure, install-sh, main.c, missing, mkinstalldirs, opennap.h:
need to include files so that autoconf is not require to build from cvs
* README, aclocal.m4, handler.c, main.c, opennap.h:
added q's server numeric histogram patch
removed aclocal.m4 from CVS repository -- generated by autogen.sh
* configure:
forgot to remove configure script -- now generated by autogen.sh
* COPYING, INSTALL, Makefile.in, autogen.sh, install-sh, missing, mkinstalldirs:
use autogen.sh to rebuild the CVS sources
2001-01-01 drscholl <drscholl@users.sourceforge.net>
* server_connect.c, main.c:
reorder operations in main event loop so that reap_connections() is called
last.
2000-12-31 drscholl <drscholl@users.sourceforge.net>
* browse.c, handler.c:
disable 10301 command
* buffer.c, init.c, main.c:
fixed obscure bug where the destroy list was not properly updated
* config.c, init.c, main.c, search.c, server_connect.c:
zero out unused Poll[] structs
* main.c, server_usage.c:
need to cast double to int
* server_usage.c, main.c:
remove (int) casts where they aren't needed
* main.c, opennap.h, privmsg.c, remove_connection.c, resume.c, search.c, server_connect.c, server_links.c, server_usage.c, serverlib.c, setup.c, upload_complete.c, userdb.c, usermode.c, util.c, whois.c, announce.c, ban.c, browse.c, channel.c, config.c, debug.c, download.c, filter.c, free_user.c, handler.c, init.c, join.c, kick.c, kill_user.c, level.c, login.c:
use %d instead of %f in places where it doesn't matter
fixed indentation
removed .last_browse member of USER
remove all reference to fast_snprintf
2000-12-30 drscholl <drscholl@users.sourceforge.net>
* Makefile.am, Makefile.in, handler.c, main.c, opennap.h, server_links.c, server_usage.c:
removed fast_snprintf
* fast_snprintf.c:
fixed fast_snprintf() to use va_arg correctly
* fast_snprintf.c, login.c, main.c:
fast_snprintf should bail out if the size of the output buffer is 0
2000-12-29 drscholl <drscholl@users.sourceforge.net>
* fast_snprintf.c, main.c:
use DIGIT() for %u and %d since its faster than ignoring leading 0s anyway
* configure, configure.in, main.c, napster.txt:
handle poll() errors to differentiate error type
* ban.c, fast_snprintf.c:
remove support for %ld. change one occurance to %u in ban.c
* fast_snprintf.c:
handle negative numbers for %d in fast_snprintf
* handler.c:
changed server flood protection to automatically flood control all commands
except for those marked F_EXEMPT
* fast_snprintf.c, motd.c:
use double for %f conversion in fast_snprintf
2000-12-28 drscholl <drscholl@users.sourceforge.net>
* download.c, napster.txt, search.c:
consider 8-bit chars to be in WORD_CHAR() class so that foreign users can
use opennap.
updated napster.txt with recent news
numeric 607 now has the requestor's linespeed as the last parameter in the
message, to be consistent with napster.com servers
2000-12-27 drscholl <drscholl@users.sourceforge.net>
* fast_snprintf.c:
added fallback mode for %d so large ints can be handled gracefully
* add_file.c, ban.c, buffer.c, change.c, channel.c, config.c, download.c, filter.c, join.c, kick.c, login.c, motd.c, privmsg.c, resume.c, server_connect.c, server_links.c, server_login.c, server_usage.c, synch.c, upload_complete.c, userdb.c, whois.c:
need to use %u instead of %d for large integers
* list_users.c: need to clear ON_GFLAG_CHANNEL
* list_users.c:
fixed list_users() to accept multiple flags (q)
* main.c, fast_snprintf.c:
fixed compilation warnings in fast_snprintf.c
fixed server_input() to work with select() based systems
* config.c, list.c, list.h, main.c:
added additional arg to list callback functions
pre-read server links in the main event loop in attempt to avoid going
through the main loop when there is heavy server->server traffic
* config.c, init.c, level.c, list_users.c, login.c, main.c, opennap.h, remove_connection.c, usermode.c, browse.c:
commited q's last_browse patch to prevent a client from browsing the same
client twice for flood-control
commited q's list_users patch for exteneded functionality: -C #<channel>
for listing users in a single channel and -u for only listing LEVEL_USER
clients.
* browse.c, fast_snprintf.c, search.c:
use same case for %d as %hu
use %u for file sizes since %d can only handle 0..99,999
* Makefile.am, Makefile.in, add_file.c, ban.c, channel.c, config.c, fast_snprintf.c, filter.c, free_user.c, handler.c, init.c, kill_user.c, login.c, main.c, opennap.h, remove_file.c, search.c, server_connect.c, server_links.c, server_usage.c, serverlib.c, userdb.c, usermode.c, util.c, whois.c:
added optimized snprintf() routine
* browse.c:
server should always return 640 in response to a 640
2000-12-26 drscholl <drscholl@users.sourceforge.net>
* browse.c:
browse_direct should check user->shared instead of user->sharing
2000-12-25 drscholl <drscholl@users.sourceforge.net>
* proxy-client.c: saved new client proxy code.
* add_file.c, buffer.c, init.c, main.c:
need to zero the pollfd structs for fds 0, 1, 2
unshare (110) should return the number of files unshared
* browse.c, buffer.c, handler.c, main.c, napster.txt, server_connect.c:
fixed commands for new browse support.
added support for firewalled browse request
2000-12-23 drscholl <drscholl@users.sourceforge.net>
* login.c:
added debug info for logging unknown commands
* handler.c, napster.txt:
server should ignore the 920 command and not bomb out on it
* browse.c, handler.c, napster.txt, opennap.h:
added support for the new direct client browsing commands in napster beta8
2000-12-19 drscholl <drscholl@users.sourceforge.net>
* main.c, server_connect.c:
old fd must be closed after dup2
* main.c:
not all connection ports were listened on
* main.c:
handle new connections after main i/o loop so that new entries in poll() are
not consulted
* main.c, opennap.h, server_connect.c:
fixed broken poll() implementation. pollfd structs were not properly
initialized
* main.c:
use getsockopt() to fetch the error code for the poll() error
* search.c, server_connect.c:
fixed core in server_disconnect
fixed off by one error in max search results
2000-12-18 drscholl <drscholl@users.sourceforge.net>
* main.c: removed msg about swapping fds
* Makefile.am, Makefile.in, announce.c, buffer.c, configure, configure.in, handler.c, init.c, libpoll.c, libpoll.h, login.c, main.c, opennap.h, remove_connection.c, server_connect.c, serverlib.c:
removed libpoll and coded direct array access using fd as the index.
2000-12-12 drscholl <drscholl@users.sourceforge.net>
* ChangeLog: post 0.38 commit
* ChangeLog, NEWS, README, hash.h, kill_user.c, libpoll.c, libpoll.h, opennap.dsp, opennap.opt:
fixes to compile under Win32 again.
2000-12-12 drscholl <drscholl@users.sourceforge.net>
* ChangeLog, NEWS, README, hash.h, kill_user.c, libpoll.c, libpoll.h, opennap.dsp, opennap.opt:
fixes to compile under Win32 again.
2000-12-08 drscholl <drscholl@users.sourceforge.net>
* ChangeLog, kill_user.c:
bsd need sys/types.h before sys/socket.h
2000-12-07 drscholl <drscholl@users.sourceforge.net>
* kill_user.c, opennap.h, handler.c, README:
added q's mass kill by ip command
2000-12-05 drscholl <drscholl@users.sourceforge.net>
* server_connect.c:
fixed core in server_disconnect
* add_file.c, kill_user.c, level.c, login.c, main.c, manual.html, network.c, opennap.h, remove_connection.c, util.c, whois.c, ChangeLog:
locally connected mods+ are now kept in the Mods global list, to make
notify_mods() more efficient.
fixed buffer overrun bug in strfcpy
whois checked the wrong CONNECTION* to determine whether the target of the
whois request is local
2000-12-04 drscholl <drscholl@users.sourceforge.net>
* buffer.c, channel.c, configure, configure.in, free_user.c, handler.c, init.c, join.c, kick.c, main.c, opennap.h, part.c, part_channel.c, public.c, synch.c, topic.c, usermode.c, util.c, whois.c:
added local channels (not synched across linked servers)
added --enable-log-channel which sends the console output to channel &LOG
in addition to printing on the terminal
fixed usermode -whois
client version string is returned with who-was reply
2000-12-03 drscholl <drscholl@users.sourceforge.net>
* README, handler.c, opennap.h, usermode.c, whois.c:
use separate numeric for remote whois notification so that the whois message
can be turned off with usermode -whois
* main.c, manual.html, muzzle.c, opennap.h, privmsg.c, server_login.c, server_usage.c, usermode.c, channel.c, configure, configure.in, free_user.c, handler.c, init.c, level.c, list_channels.c, login.c:
added usermode -msg to allow a user to turn off private msgs
added a nickserv usermode command for use by non-mod users
cloaked users should not be counted in channel user counts
don't allow non-mod users to change their own level
use a hashlist to store client version strings for memory savings
2000-12-02 drscholl <drscholl@users.sourceforge.net>
* add_file.c, free_user.c:
Local file count was not updated when a local user unshared all files
2000-11-30 drscholl <drscholl@users.sourceforge.net>
* main.c:
wrong errno was used in handle_io. should use the result of getsockopt()
instead of errno in the log message
2000-11-29 drscholl <drscholl@users.sourceforge.net>
* ChangeLog, NEWS, TODO, config.c, main.c, opennap.h, search.c:
updated ChangeLog
added `max_searches' configuration variable to cap the number of pending
search requests each client is allowed
* README, handler.c, login.c, opennap.h, remove_connection.c, server_connect.c, server_links.c, server_login.c, synch.c:
reworked server link info messages.
use server_error to handle message 0
server_quit is now deprecated. use server_disconnect for both manual and
detected splits
2000-11-28 drscholl <drscholl@users.sourceforge.net>
* TODO, hashlist.c, hashlist.h:
fixed bug with hotlist. when `data' is specified for the hashlist_remove,
don't decrement the `count' if the `data' is not found on the list.
* hashlist.c, hotlist.c, main.c:
added more debugging to catch the hotlist bug
2000-11-25 drscholl <drscholl@users.sourceforge.net>
* hashlist.c, hotlist.c:
added debugging to help find the hotlist bug
2000-11-23 drscholl <drscholl@users.sourceforge.net>
* ChangeLog, whois.c:
updated ChangeLog
nick should be returned when whois has no info for the requested nick
2000-11-22 drscholl <drscholl@users.sourceforge.net>
* Makefile.in, userdb.c:
patchnap no longer needs to be included in the source distribution
fixed indentation in userdb.c
* search.c:
keep track of search count when in routing-only mode
* hashlist.c:
don't assert when the list count is >0 but list==NULL
* configure.in, configure:
configure script was incorrect
* opennap.h, search.c, serverlib.c, TODO, add_file.c, configure.in, free_user.c, kill_user.c, libpoll.c, login.c:
updated TODO file
fixed indentation on a few files
removed debug statement from libpoll.c
added --disable-kqueue to configure
2000-11-21 drscholl <drscholl@users.sourceforge.net>
* browse.c:
fixed browse/browse_new to not return the client's ip address if no files
are shared.
* hashlist.c, remove_connection.c:
fixed bug in hashlist_remove which caused the haslist to always be freed
even when other entries exist
* browse.c, filter.c, free_user.c, hashlist.c, hashlist.h, hotlist.c, login.c, napster.txt, opennap.h, remove_connection.c, remove_file.c, serverlib.c:
fixed new_browse to allow browsing across a routing-only server
fixed some bugs in the new hotlist/hashlist code
2000-11-16 drscholl <drscholl@users.sourceforge.net>
* Makefile.am, Makefile.in, NEWS, free_user.c, handler.c, hash.c, hash.h, hashlist.c, hashlist.h, hotlist.c, init.c, login.c, main.c, opennap.h, patchnap.c, remove_connection.c, server_usage.c, serverlib.c:
patchnap is no longer needed since nap is now Free Software
max_clones is now global instead of per-server
added general purpose hash+list routines
numeric 10013 is no longer needed, removed from handler table
hash table functions updated to provide support for any type of key, not
just a string
2000-11-15 drscholl <drscholl@users.sourceforge.net>
* ChangeLog, README, browse.c, main.c, napster.txt, opennap.h, privmsg.c:
updated ChangeLog with recent entries
the ip address of the client is now returned with the end-browse-list
numeric, per the official servers
added redirect and cycle to operserv
2000-11-12 drscholl <drscholl@users.sourceforge.net>
* add_file.c:
fixed segfault in fdb_add when memory is exhausted
2000-11-10 drscholl <drscholl@users.sourceforge.net>
* browse.c, main.c, opennap.h:
--enable-version-stats did not work with --enable-router
2000-11-06 drscholl <drscholl@users.sourceforge.net>
* client_quit.c, sample.conf:
fixed bug in client_quit where it was testing for local users rather than
remote users
2000-11-03 drscholl <drscholl@users.sourceforge.net>
* login.c:
added check for missing param in check_password()
* libpoll.c, libpoll.h, server_login.c:
allow max_time_delta and warn_time_delta to be 0 to disable the clock sync
check.
fixed bug when using select() which causes a segfault
2000-11-02 drscholl <drscholl@users.sourceforge.net>
* .indent.pro, NEWS, README, client_quit.c, config.c, configure, configure.in, free_user.c, handler.c, init.c, main.c, manual.html, opennap.h, whois.c:
added who-was support
2000-10-31 drscholl <drscholl@users.sourceforge.net>
* ChangeLog, TODO, config.c, join.c, opennap.h:
added option boolean `irc_channels' to control whether to enforce channel
names must begin with # or &. set by default to behave the same as previous
versions.
2000-10-30 drscholl <drscholl@users.sourceforge.net>
* ChangeLog, NEWS, README, init.c, main.c, opennap.dsp, opennap.dsw, opennap.opt, server_links.c:
pre 0.37 release commit
* sample.conf, whois.c:
whois should use next_arg() to trim whitespaces
fixed whois to use the same message as the official server when the target
nickname is not online or registered
2000-10-27 drscholl <drscholl@users.sourceforge.net>
* privmsg.c:
added `nuke' to the list of operserv commands
2000-10-25 drscholl <drscholl@users.sourceforge.net>
* server_connect.c, util.c:
fixed broken remote server connect
* handler.c, join.c, login.c, opennap.h:
added stub function ignore_command to silently handle numerics that we
ignore
* .indent.pro, libpoll.c, main.c:
reverted indentation style
Login_Timeout support was never readded after changing over to use libpoll.c
2000-10-17 drscholl <drscholl@users.sourceforge.net>
* login.c:
fixed eject_client not too boot mods+ and to eject leeches before users.
* download.c, login.c:
upload_request() used the wrong offsets into av[]
* main.c:
prevent segfault when no context for a fd is passed into handle_io()
* level.c:
fixed level() to ensure that the sender's level is mod+ in the case where
the local server has no record of the target user.
* .indent.pro, download.c:
reverted indent style to original
fixed bug which caused a download to fail between client 2 server hops away
* privmsg.c:
fixed server crash when nickserv is called with no args
* muzzle.c, synch.c:
don't pass a muzzle command if a local user is not a mod+
2000-10-04 drscholl <drscholl@users.sourceforge.net>
* browse.c:
fixed bug in browse when a user is logged into a server compiled as
a router.
2000-10-03 drscholl <drscholl@users.sourceforge.net>
* change.c, topic.c:
fixed bug in nuke. the error message when permission is denied tried to
send the message back to the (possibly nonexistent) user that was nuked.
fixed bug in topic when the channel name was not present
2000-09-22 drscholl <drscholl@users.sourceforge.net>
* browse.c:
fixed core in browse() when no nick is given
* server_connect.c, channel.c, main.c:
added more log info when channel_op needs to resync a server
2000-09-21 drscholl <drscholl@users.sourceforge.net>
* util.c:
next_arg() should return null when an empty string is passed in
* change.c:
fixed bug in cloak which cause it not to allow any user to cloak
2000-09-20 drscholl <drscholl@users.sourceforge.net>
* serverlib.c:
pop_user_server() printed the value of the pointer instead of the nickname
when an error occurred.
* main.c:
destroy_connection had wrong test for con->destroy
* main.c:
allow destroy_connection() to handle the case where the connection is marked
as destroyed but not placed on the Destroy list
2000-09-19 drscholl <drscholl@users.sourceforge.net>
* change.c, free_user.c, level.c, login.c, muzzle.c, opennap.h, userdb.c:
rewrote muzzle to be more clear
server no longer saves cloak state when a mod+ logs out. was casusing too
many server desyncs.
* change.c, join.c:
server generated kicks on desync now state why the user was kicked
fixed bad send_user() call in nuke()
* change.c:
always propogate a nuke command if the account is not locally registered
and the user is not logged in since other servers might have a db entry for
it.
* login.c, synch.c:
removed ts from level commands
* channel.c:
fixed crash in channel_wallop() when the wallop was sent by a server
* main.c:
catch memory alloc fail in destroy_connection()
* main.c:
added print out of number of fds in the Poll_Context in update_stats() for
systems with poll() just to verify libpoll is not losing fds
* free_user.c, kill_user.c, remove_connection.c:
set the memory used by USER and CONNECTION structs to 0xff before free'g
to catch bad refs
.killed should be set prior to calling destroy_connection
2000-09-18 drscholl <drscholl@users.sourceforge.net>
* login.c:
last seen time is not necessary to sync up the user db
* change.c, level.c:
cloak() should send the absolute state when relaying to peer servers
allow a user to nuke their own account. nuke now tells the user that their
account was nuked if they are logged in at the moment.
* level.c:
fixed possible desync when the received server message was malformed
* motd.c:
motd now displays the name of the server you are connected to
* change.c, level.c, login.c, opennap.h, privmsg.c, synch.c, userdb.c:
reverted ts changes in level.c.
changed .timestamp to .created for USERDB struct. once set it should not
be modified unless a collision has occured.
2000-09-16 drscholl <drscholl@users.sourceforge.net>
* main.c:
update_stats() now prints the time at which the server was started
* level.c, ChangeLog:
fixed bug in timestamp code for level(). the oldest change should be
dropped, not the newest.
level() will now correct for server desync when it detects that a remote
user has no privilege to execute the change.
updated ChangeLog with recent CVS entries.
2000-09-15 drscholl <drscholl@users.sourceforge.net>
* search.c:
fixed find_search to print a single dot (.) for each exipred request instead
of a line for each request. the id strings are not really important info
* opennap.h, init.c, main.c:
setting the Server_Ip and Interface was still broken with the new
server_alias config var
* manual.html, opennap.h, sample.conf, server_connect.c, init.c, main.c, config.c:
added `server_alias' variable to use when the server should be aliased
prevent certains vars from being reset after the server first loads the
config file
2000-09-14 drscholl <drscholl@users.sourceforge.net>
* manual.html, server_links.c:
empty, or lines that start with a whitspace char are now ignored in the
servers file
* init.c, level.c, libpoll.c, libpoll.h, main.c:
fixed compilation errors with -DROUTING_ONLY=1
2000-09-13 drscholl <drscholl@users.sourceforge.net>
* main.c:
use getsockopt() to fetch the reason error was returned from poll/select
* main.c, remove_connection.c:
when not in debug mode, write 0xff bytes to the free'd connection structs
add check in handle_io() to ensure the fd matches the fd in the connection
struct passed back
* buffer.c, main.c:
added fd # to log message when a socket error occurs
send_queued_data() should error if you try to send to a destroyed connection
* handler.c, libpoll.c, login.c:
collapse POLLNVAL/POLLHUP/POLLERR check into a single if statement
udpated flood protection
2000-09-12 drscholl <drscholl@users.sourceforge.net>
* server_connect.c:
fixed bug in killserver where you could not kill the server you are
connected to
* server_connect.c:
server_disconnect disconnected the user issuing the disconnect, not the
server
* channel.c, kill_user.c, login.c, muzzle.c:
fixed kill_user() to use pop_user_server()
fixed bug in channel_op() where the "Server " prefix was the only thing sent
* login.c:
fixed login() so that it only sends a KILL back to the server where the
login request came from when an error is detected. its not necessary to
pass this message to all peer servers.
* libpoll.c, libpoll.h, main.c:
lp_dispatch now returns LP_ERROR when an error condition on the socket has
been detected (hangup, error, invalid)
* libpoll.c:
added checking for other POLL* bits
* libpoll.c:
warn when bits other than POLLIN/POLLOUT are set in .revents
* libpoll.c, libpoll.h, main.c:
make libpoll a little cleaner when using poll() by first assignin a local
var `pfd' to the struct pollfd entry
* libpoll.c:
lp_clear() should unset the current state of the fds from the last
poll/select so that the next lp_dispatch() will not invoke the callback
routine for that fd
* join.c:
when a user gains chanops by joining a new channel, the msg was not prefixed
with "Server"
* ban.c, channel.c, config.c, kick.c, kill_user.c, level.c, libpoll.c, muzzle.c, opennap.h, privmsg.c, server_links.c, server_login.c:
fixed libpoll finally
prefix Server to all actions preformed by servers in notify_ops/notify_mods
calls
* config.c, libpoll.c:
more verbose error message when select() fails
* init.c, libpoll.c:
print warning when sigpipe is caught
* libpoll.c:
fixed copile error for select() based systems
* buffer.c, libpoll.c, libpoll.h:
more libpoll debugging
* libpoll.c:
fixed compile error on systems with only select()
* part_channel.c, libpoll.c, main.c:
dont call list_delete() on chan->invited when null
more libpoll debugging
* join.c, libpoll.c:
added more libpoll debug statements
dont call list_delete() on chan->invited when its null
* libpoll.c:
added additional libpoll debugging
* join.c, libpoll.c:
added missing set of .magic for channels
changed realloc to REALLOC() in libpoll
* libpoll.c:
added debugging support for libpoll
* main.c:
dont clear the fd in report_stats(). its the listen fd, not the client's fd
* libpoll.c, libpoll.h, change.c:
memset() the pollfd struct when moving it to fill holes
* change.c, main.c:
reason when altering another users password should be optional
* main.c:
stats port fd was not cleared when closing it
2000-09-11 drscholl <drscholl@users.sourceforge.net>
* init.c:
fixed bug with umask where it should have use 077 instead of 0777
* libpoll.c:
when moving the last element of the poll_fd[] array to fill holes, we need
to update the .pollfd_offset of the corresponding lp_fd_ctx
* libpoll.c, libpoll.h, server_connect.c:
need to keep int offset into .poll_fd[] array since it can be realloc'd
* init.c, libpoll.c, napster.txt:
make hash table buckets a prime (1027)
updated napster.txt with new 110 message
* login.c, main.c, opennap.h, privmsg.c, search.c, server_usage.c, add_file.c, config.c, handler.c, init.c, kill_user.c, libpoll.c:
changed bytes in/out counters to double
prevent clients from using the alias names of servers
fixed bug in issuing remote searches where the generated id was not sent
when searches originated at the local server
libpoll.c needed <string.h>
* handler.c, login.c, main.c, opennap.h:
changed unsigned to u_ defs
* aclocal.m4, configure, main.c, Makefile.in:
rewrote main to use list_free() and list_foreach().
reduce timeout for lp_poll() when there are clients on the flood list
* main.c:
Destroy list was not NULL'd when delete all items in the list
* main.c:
added debug check of connection struct in Destroy list
* Makefile.in, aclocal.m4, configure, configure.in:
check for poll() and kqueue()
* libpoll.c, libpoll.h:
forgot to commit new libpoll files
* Makefile.am, Makefile.in, add_file.c, ban.c, buffer.c, config.c, free_user.c, handler.c, init.c, kill_user.c, login.c, main.c, opennap.h, privmsg.c, remove_file.c, server_connect.c, server_login.c, serverlib.c, .indent.pro:
incorporated new libpoll library into main branch
added extensive checking to prevent negative total library size bug
changed indent style for a few files with new .indent.pro
2000-09-08 drscholl <drscholl@users.sourceforge.net>
* login.c, privmsg.c, server_connect.c:
fixed bug in server_connect() where auth->alias was used without being
checked for NULL
added "register" command to NickServ to allow a user to register their own
nick if not previously done.
modified register_user() to allow for servers registering user accounts
(needed for /m NickServ register)
* TODO, init.c, list.c, list.h, server_links.c:
added signal handler to catch sigsegv and wipe the user/server passwords
from memory before dumping core when not in debug mode
* ChangeLog, README:
updated ChangeLog with recent entries
updated README on server connect to what this version supports
* server_connect.c:
removed <port> arg from server connect command. servers will need to be
upgraded to interoperate with this version anyway.
* sample.servers, search.c, server_connect.c, server_links.c, server_login.c, NEWS, README, add_file.c, browse.c, config.c, configure, configure.in, filter.c, free_user.c, handler.c, init.c, login.c, main.c, manual.html, opennap.h, remove_file.c:
committed routing-only server patch enabled via --enable-routing
2000-09-07 drscholl <drscholl@users.sourceforge.net>
* libpoll.c, libpoll.h:
New file.
* configure, configure.in, handler.c, libpoll.c, libpoll.h, main.c, opennap.h, server_connect.c, serverlib.c, Makefile.am, Makefile.in, buffer.c:
initial import of the libpoll patch to support select/poll and simplify
the main event loop
2000-09-06 drscholl <drscholl@users.sourceforge.net>
* channel.c, napster.txt, opennap.h, util.c:
sync_channel_bans() used the server ban numeric instead of the channel ban
numeric
added a few missing hex codes to napster.txt
2000-09-05 drscholl <drscholl@users.sourceforge.net>
* README, handler.c, opennap.h, server_links.c:
added ping_all_servers() command (10120) to trigger the lag detection
* ChangeLog, NEWS, init.c, join.c, main.c, opennap.h, sample.servers, server_login.c:
more security fixes. don't allow config file or ports to be specified on
the command line when running as root to prevent local users on the system
from attempting to exploit it.
2000-09-04 drscholl <drscholl@users.sourceforge.net>
* join.c:
fixed bug in join() where cross-server joins were always considere desynced
* server_login.c:
fixed bad format in time_check()
* kick.c:
fixed bug in kick() where it could not handle kicks generated by a peer
server
2000-09-03 drscholl <drscholl@users.sourceforge.net>
* sample.conf:
removed outdated variables from sample.conf
* config.c, configure, configure.in, init.c, main.c, manual.html, opennap.h:
Removed config_dir, uid and gid config variables. For security, values
about the operating system should not be revelead in case a admin+ user
level is compromised. The -c command line option now specifies the
directory where configuration files are found, rather than the master config
file. uid/gid can be specified as part of the configure script (still
defaulting to nobody/nobody).
added --enable-chroot configure option to allow opennap to be run in a jail.
imediately after reading the command line arguments, opennap will chroot()
to the configuration directory before reading any config files.
2000-09-02 drscholl <drscholl@users.sourceforge.net>
* config.c, configure, configure.in, handler.c, init.c, main.c, opennap.h, server_login.c, synch.c, README:
added support for chroot()
added time_check() function to detect clock skew when linking servers. if
the delta is more than Max_Time_Delta, the link will be closed. if it is
more than Warn_Time_Delta, it will notify the mods but let the link
continue.
* manual.html, privmsg.c, sample.conf:
added /m chanserv level command
removed channel_limit from sample.conf
2000-09-01 drscholl <drscholl@users.sourceforge.net>
* config.c, main.c, manual.html, opennap.h:
removed Channel_Limit. its now always set to 0 by default
* channel.c, free_user.c, join.c, opennap.h, part_channel.c, serverlib.c, synch.c:
join() should send kick messages to servers which it detects are desynched.
fixed TS code to ignore TS==0 from a remote server when the local TS > 0.
remove .invited member from USER since it's not necessary
always attempt to remove the user from the .invited list of a channel in
case the channel was set -INVITE after the user was invited.
default channel limit set to 0 instead of Channel_Limit
* channel.c:
fixed bug in channel ban where it was impossible to ban someone
* manual.html, whois.c:
fixed bug in which_server() where pkt was used instead of nick when doing
hash_lookup()
* main.c, manual.html, privmsg.c, remove_connection.c, server_links.c:
updated the manual with even more information
added NickServ pseudo user and the "ghost" command
2000-08-31 drscholl <drscholl@users.sourceforge.net>
* Makefile.am, Makefile.in, announce.c, kill_user.c, login.c, main.c, napster.txt, opennap.h, remove_connection.c, search.c, server_connect.c, serverlib.c, start_opennap:
modified handle_io() to fill up the holes created by disconnected clients
in the Clients[] array. all loops over Clients[] should now use Num_Clients
as the basis and there is no need to check for NULL entries any more.
added start_opennap script to facilitate backing up of gmon.out for
profiling.
2000-08-30 drscholl <drscholl@users.sourceforge.net>
* whois.c:
which_server() should strip trailing whitespace from the nick before
attempting to look up the user
* search.c, server_links.c:
server_pong was checking the wrong arg for detecting the response to an
auto-sping.
* handler.c, search.c:
added error message to the user when a search contains no valid search terms
fixed compilation warning about min,max possibly being used uninitialized
server_pong was not put in the handler table so it was never called
* README, handler.c, opennap.h, privmsg.c, whois.c:
added a new command (10119) to display which server a particular user is on.
also accessable via /msg operserv server <user>
* search.c:
forgot to init .maxsize and .maxduration
2000-08-29 drscholl <drscholl@users.sourceforge.net>
* README, channel.c, search.c:
added support for filtering search results by excluding certains words
added support for filtering search based upon file size or mp3 play time.
* usermode.c:
forgot to add "PING" user mode so users can toggle it
* README, config.c, login.c, main.c, opennap.h, search.c, server_links.c:
added new numeric 10022 for server->server pong response. a 750 to a remote
server will return a 10022 instead of a 750.
added new config var `ping_interval' so specify how often (in seconds) the
server should ping its peer servers.
added new user mode +PING which controls the server lag detection
notifications to mods+
fixed bug in fdb_search where it would return all files which matched the
word with the fewest matching entries in it instead of checking for all
search terms.
* server_links.c:
changed ping_server to use the same numeric for the server response instead
of using send_user()
2000-08-28 drscholl <drscholl@users.sourceforge.net>
* channel.c:
allow mods+ to invite without being in a channel
* channel.c:
the notify_ops() call was testing for the server ban instead of channel ban
* join.c:
server should only set a user as channel operator when a new channel is
created when the user is local. otherwise it should rely on the remote
server to specify which user gets opped.
2000-08-27 drscholl <drscholl@users.sourceforge.net>
* main.c:
fixed bug where server->server data wasn't sent if it had all pending data
had been compressed the previous time, but not all sent.
2000-08-26 drscholl <drscholl@users.sourceforge.net>
* channel.c, opennap.h, public.c, synch.c:
bug in channel_op when used to voice a user it set the operator bit instead.
2000-08-25 drscholl <drscholl@users.sourceforge.net>
* napster.txt, search.c:
support the LOCAL_ONLY keyword in searches (same as LOCAL), as this is what
the official napster servers use.
* channel.c:
channel bans were still using the wrong numerics
* channel.c, list_channels.c, privmsg.c:
fixed bug when channel bans not being set
* main.c:
when shutting down, just close client fd's without calling remove_connection
to save time.
2000-08-24 drscholl <drscholl@users.sourceforge.net>
* join.c:
added comment about why we dont give automatic ops to users in predefined
channels
* channel.c:
fixed memory leak when unbanning from a channel. the BAN struct was never
free'd.
the reason string was never truncated for channel ban/unban
* channel.c, join.c, kick.c, login.c:
channel limit and level did not handle the case where the TS was the same,
but the values different
* channel.c:
fixed bug in channel_mode where an op could not change the mode
* channel.c, kick.c, opennap.h:
fixed bug where it was impossible to kick a user from a channel
* config.c:
server should notify mods+ when a server variable is changed
* channel.c, join.c, TODO:
fixed timestamp code on channel limit and mode. timestamps were not
propogated for all server->server links
reworked code in channel ops/voice to avoid using goto statements.
* ban.c, channel.c, handler.c, join.c, kick.c, list_channels.c, main.c, opennap.h, part_channel.c, public.c, serverlib.c, synch.c:
changed model to allow the first user in a non registered channel to gain
ops, and to allow ops to create other ops.
beefed up channel timestamps to prevent riding netsplits to gain channel
privileges.
2000-08-23 drscholl <drscholl@users.sourceforge.net>
* main.c, manual.html, motd.c, opennap.h, remove_connection.c, sample.conf, search.c, server_login.c, server_usage.c, FAQ, Makefile.am, Makefile.in, README, add_file.c, announce.c, config.c, configure, configure.in, handler.c, init.c, list.c, list.h, login.c:
merged the toklist branch into headrev
2000-08-22 drscholl <drscholl@users.sourceforge.net>
* manual.html: New file.
* manual.html, config.c:
began working on manual.html, opennap's ref manual
* FAQ, Makefile.am, Makefile.in, login.c, main.c, motd.c, opennap.h, search.c:
added faq about error 10054 under windows.
number of connections to the server is now sent in the motd
* README, configure, configure.in, handler.c, init.c, login.c, main.c, opennap.h, server_usage.c:
added support for tracking client versions. numeric 10118 will cause the
server to dump it's version/count list. enabled with configure
--enable-version-stats
* README, add_file.c, opennap.h, search.c:
fixed memory leak when removing files from the database
2000-08-21 drscholl <drscholl@users.sourceforge.net>
* main.c, search.c:
"any" was not accepted as a valid file type when issuing a search request
2000-08-19 drscholl <drscholl@users.sourceforge.net>
* main.c:
created new function handle_io() to contain the client input/output loop
* README:
added additional information to the README
* handler.c:
handle_connection() should read() from server sockets until it returns -1,
errno EWOULDBLOCK
* add_file.c, list.c, list.h, main.c, search.c, server_login.c:
created list_push() function to place a new list element at the head of a
list.
changed from list_append() to list_push() in many places where the order
doesn't count. list traversal was eating much cpu needlessly.
collapsed the two loops over Max_Clients in main() which handle input/output
to clients. given that the write phase has to wait for select() anyway,
there is no reason to separate the two. should save some time in the main
loop.
2000-08-17 drscholl <drscholl@users.sourceforge.net>
* announce.c, ban.c, login.c:
connections from banned clients are now only displayed on the server to
which the connection was made.
2000-08-16 drscholl <drscholl@users.sourceforge.net>
* remove_connection.c, sample.conf, search.c, add_file.c, announce.c, config.c, init.c, list.c, list.h, main.c, opennap.h:
changed db to use list of search tokens for matching rather than string
comparisons
2000-08-15 drscholl <drscholl@users.sourceforge.net>
* add_file.c, configure, configure.in, main.c:
added --enable-gprof configure option to compile with -pg
fixed compile error when free'ing Filter hash table
* announce.c, list.c, list.h:
announce() should check for the user's level when sending a message from a
cloaked user so that it shows the real nick for privileged users.
added list_foreach() function
2000-08-13 drscholl <drscholl@users.sourceforge.net>
* NEWS, README, opennap.dsp, opennap.dsw, opennap.h, opennap.opt, ChangeLog:
updated win32 build files
* TODO, browse.c, resume.c:
fixes to compile with --enable-resume
2000-08-10 drscholl <drscholl@users.sourceforge.net>
* channel.c, synch.c:
when syncing bans, the server should just say that it set the ban so that
pop_user_server() doesnt return NULL for *sendernick.
2000-08-09 drscholl <drscholl@users.sourceforge.net>
* NEWS, sample.conf:
added additional information about flood control to the NEWS and sample.conf
files
* NEWS, TODO, config.c, handler.c, join.c, login.c, main.c, opennap.h, sample.conf, usermode.c:
comma (,) is no longer a valid char in nicks/channels
added server-side flood protection controlled by new config vars
`flood_commands' and `flood_time'. mods+ notification is controlled by
usermode FLOOD.
2000-08-08 drscholl <drscholl@users.sourceforge.net>
* change.c:
change_pass() now reports back success to the user
* ban.c, config.c, filter.c, login.c, main.c, opennap.h:
changed search token filter to be a hash table. linked list traversal
consumed too much cpu time
notify_mods() call in ban() used sender instead of sendernick as as arg.
check_ban() should be called prior to eject_client() in login()
* search.c, level.c:
find_search() had %d instead of %s to print out the id of expired searches
* level.c:
level() should force an update when it detects an out of date timestamp so
that desyncs are corrected.
* NEWS, config.c, login.c, opennap.h, sample.conf:
made the ejection of nonsharing clients a boolean configuration option
* ChangeLog, Makefile.am, Makefile.in, NEWS, TODO, config.c, filter.c, handler.c, init.c, kill_user.c, main.c, opennap.h, sample.filter, search.c:
search token filtering is now configurable instead of hardcoded. opennap
now reads the `filter' file to determine which words to ignore.
server_stats() should not use `tag' since it is called by login() with no
arguments.
2000-08-07 drscholl <drscholl@users.sourceforge.net>
* Makefile.am, Makefile.in, NEWS, browse.c, configure, configure.in, handler.c, join.c, login.c, main.c, napster.txt, opennap.h, opennap.init:
changed basename() to my_basename() to avoid compilation errors on some
systems.
look for -lz in /usr/local/lib
opennap should return message 13 when receving unknown commands prior to
receipt of the login (2) message.
added support for tcp_wrappers
mods+ could not bypass the strict channel join setting
opennap should send the 316 numeric prior to disconnecting clients to be
compatible with the napster.com servers
updated napster.txt with new information
sysv-init style script for starting opennap at boot from
Geoffrey Lee <snailtalk@linux-mandrake.com>
2000-08-05 drscholl <drscholl@users.sourceforge.net>
* configure, configure.in, init.c, login.c:
check for -lz in /usr/local/lib
cast pid_t to int in dump_pid()
added eject_client() to find a client with 0 files shared that has been
connected the longest and kill it. if the server is full, login() will call
eject_client() to try and kill someone else to make room for the current
login.
2000-08-04 drscholl <drscholl@users.sourceforge.net>
* ban.c, main.c, opennap.h, redirect.c, synch.c, README:
extended the ban command to accept a timeout
* Makefile.am, Makefile.in, README, handler.c, join.c, napster.txt, opennap.h, redirect.c, synch.c, whois.c:
added support for client redirect (821) and client cycle (822) numerics
changed set chan level to 823 to match official servers
updated napster.txt with new information obtained from release of nap source
the whowas response should have quoted the user's level similar to the whois
response
2000-08-03 drscholl <drscholl@users.sourceforge.net>
* FAQ, add_file.c, handler.c, remove_file.c, synch.c:
added more checking to prevent a user's library size from being negative
2000-07-31 drscholl <drscholl@users.sourceforge.net>
* add_file.c:
finally found buffer overrun in add_directory(). strncpy() does not write
a \0 to the end of the string if all the space was used up before getting to
the end of the string
2000-07-30 drscholl <drscholl@users.sourceforge.net>
* add_file.c, glob.c, search.c:
rewrote tokenize() to reduce the number of strcmp() calls when reaping bad
tokens.
glob_match() was not case-insensitive
2000-07-29 drscholl <drscholl@users.sourceforge.net>
* ChangeLog, NEWS, config.c, main.c, opennap.h, sample.conf, server_usage.c:
added stats reporting for total bytes sent/received
server_usage() now reports searches/sec and total bytes in/out
2000-07-28 drscholl <drscholl@users.sourceforge.net>
* browse.c: reverted previous changes
* add_file.c, download.c, init.c, main.c, opennap.h, remove_file.c, search.c, upload_complete.c, util.c:
reverted back to storing full pathnames in the DATUM struct. it was causing
too much load having to regenerate the filename every time match() needed to
be called.
* config.c, join.c, main.c, opennap.h, search.c, server_usage.c:
added `search_timeout' variable to set the expiration time of remote
searches (default: 180 secs)
bytes in/out was not time averaged in server_usage()
* channel.c, free_user.c, login.c, main.c, opennap.h, remove_connection.c, synch.c:
cache the server names so that each USER struct can reference it a single
time instead of once for each user
* configure, configure.in:
fixed bug in configure which causes DEBUG to always be set
* download.c, upload_complete.c:
reorganized code in download() to lookup the user's file only once
* TODO, add_file.c, download.c, opennap.h, remove_file.c, search.c, upload_complete.c, util.c:
added more strict checking to make sure the directory name also matches when
looking up a file by its basename
* browse.c, download.c, opennap.h, remove_file.c, upload_complete.c, util.c, add_file.c:
modified hash table of user's files to index by only the pathname instead of
the full directory name since that is no longer available
* add_file.c, browse.c, download.c, resume.c:
fixed many other places where the full filename was not returned
* search.c:
search did not return the full pathname of the shared files
* add_file.c, browse.c, init.c, main.c, opennap.h, search.c, TODO:
created new hash table `Paths' for storing the directory components of
shared files a single time for all files in the same directory.
2000-07-27 drscholl <drscholl@users.sourceforge.net>
* channel.c, sample.channels:
altered channels file so that # is no longer considered a comment in
`version 1' files.
* NEWS, join.c, login.c:
channel names must now begin with # or &. join will automatically prepend a
hash (#) if missing
* configure, configure.in:
debugging is no longer enabled by default. use `configure --enable-debug'
to turn it on
* add_file.c, main.c, opennap.h:
change Num_Gigs to a double. unsigned int was running out at 4096 GB.
* Makefile.am, Makefile.in, NEWS, README, ban.c, channel.c, configure, configure.in, download.c, glob.c, join.c, list_users.c, login.c, napster.txt, opennap.h, resume.c, search.c, synch.c, upload_complete.c, util.c, whois.c:
imported changes from adns branch, without adns support
* NEWS, join.c:
fixed bug in channel rollover code causing an infinite loop
2000-07-26 drscholl <drscholl@users.sourceforge.net>
* channel.c:
fixed bug which prevented registered channels from being dropped
* remove_connection.c:
check to make sure con->dns != 0 before calling adns_cancel()
* upload_complete.c:
fixed bug with downloads not working. forgot to switch .host to .ip
in the download responses
2000-07-25 drscholl <drscholl@users.sourceforge.net>
* main.c:
added adns_if_noserverwarn to adns_init() to turn off warnings
* login.c, main.c:
login() did not convert the uint32 ip address to dot-quad before using it
as the host name
* server_connect.c:
.resolved should be set when making an outgoing server connection so the
connection doesnt time out waiting for a nonexistent dns lookup
* configure, configure.in:
configure should use `if test' rather than `if ['
* README, list_users.c, whois.c:
added the client ip address in dot-quad format to the end of the global user
list response, and the whois response
* configure, configure.in:
configure should look for -ladns in /usr/local/lib as well
* glob.c: New file.
* glob.c: forgot to add glob.c
* Makefile.am, Makefile.in, NEWS, ban.c, channel.c, configure, configure.in, download.c, join.c, list_users.c, login.c, main.c, napster.txt, opennap.h, remove_connection.c, resume.c, search.c, synch.c, whois.c:
added initial support for adns to add reverse dns lookups for client
connections.
2000-07-23 drscholl <drscholl@users.sourceforge.net>
* ChangeLog, Makefile.in, README, configure, setup.c:
fixed setup.c to compile under win32
updated ChangeLog with recent CVS log entries.
2000-07-20 drscholl <drscholl@users.sourceforge.net>
* login.c:
clone checker and max connections should only be checked for user logins,
not server logins.
* napster.txt:
updated napster.txt on the 870 (add directory) command
* add_file.c, handler.c, search.c:
fixed possible buffer overrun in add_directory()
fixed handle_connection() to avoid sending MSG_SERVER_USER_SHARING commands
after every MSG_CLIENT_ADD_DIRECTORY command.
added the server from which the command came to the log() messages generated
by remote_search() and remote_search_result()
2000-07-16 drscholl <drscholl@users.sourceforge.net>
* config.c, login.c, main.c, opennap.h, sample.conf:
added clone checking controlled by new `max_clones' config var.
2000-07-13 drscholl <drscholl@users.sourceforge.net>
* browse.c:
fixed bug in new_browse() where no results would be returned in
max_browse_results was set to 0 (which should mean unlimited)
2000-07-08 drscholl <drscholl@users.sourceforge.net>
* add_file.c, configure.in, opennap.h:
fixed buffer overflow in add_directory() when the directory portion of the
filename was >=255 chars
2000-07-06 drscholl <drscholl@users.sourceforge.net>
* server_usage.c:
added bytes in and bytes out to the server stats
2000-07-02 drscholl <drscholl@users.sourceforge.net>
* README, opennap.h, privmsg.c:
changed rehash numeric to 10117 to avoid conflict with old server ping
numeric
added `rehash' to the list of operserv commands
* README, config.c, handler.c, opennap.h:
added rehash (10116) command to cause a server to reload it config files
* README, add_file.c, server_connect.c:
log message for bitrateToMask() said freqToMask
server_connect should check for missing host argument
2000-06-30 drscholl <drscholl@users.sourceforge.net>
* muzzle.c:
added missing return when attempting to unmuzzle a user that isnt muzzled
2000-06-29 drscholl <drscholl@users.sourceforge.net>
* channel.c:
channel_voice() did not check for permission to execute the command
* browse.c, channel.c, muzzle.c, serverlib.c:
fixed compilation warnings about unused `len'
pop_user_server() had a bad log() message with the message tag value causing
a segfault
muzzle() should ensure that db is not NULL before using it
2000-06-27 drscholl <drscholl@users.sourceforge.net>
* whois.c:
append_string() allocated extra space but didnt copy the data to append
* channel.c, join.c:
bugfixes from panasync. join() was setting the wrong user to channel
operator since chanUser was reused for sending a join message to all clients
in the channel.
in channel_muzzle(), need to check for sender!=NULL when checking the user
level permission
2000-06-26 drscholl <drscholl@users.sourceforge.net>
* browse.c, channel.c, muzzle.c, whois.c:
muzzled users should not be able to channel wallop
2000-06-24 drscholl <drscholl@users.sourceforge.net>
* ChangeLog, NEWS, README:
post 0.34 release commit
2000-06-23 drscholl <drscholl@users.sourceforge.net>
* TODO, channel.c:
channel_mode should not allow a user below the channel level to change
the mode
2000-06-22 drscholl <drscholl@users.sourceforge.net>
* Makefile.in, README, channel.c, handler.c, opennap.h, privmsg.c, public.c, serverlib.c, synch.c:
added channel voice and muzzle commands
* channel.c, join.c, opennap.h, usermode.c:
removed channel and topic usermode flags since they are no longer used
reworked join() to allow channel ops to bypass the +INVITE and limit checks
* channel.c, configure, configure.in, join.c, kick.c, opennap.h, topic.c:
updated version to 0.34
removed notify_mods() from all channel specific calls. notify_ops() will
now notify mods+ in the channel.
2000-06-21 drscholl <drscholl@users.sourceforge.net>
* napster.txt, privmsg.c:
added invite and mode command to chanserv
* README, browse.c, handler.c, opennap.h, whois.c:
added new experimental browse command (10301/10302) for more compact browse
listings
2000-06-19 drscholl <drscholl@users.sourceforge.net>
* README, channel.c, opennap.h, synch.c, topic.c:
added +TOPIC channel mode to allow any user to change the topic
2000-06-17 drscholl <drscholl@users.sourceforge.net>
* channel.c:
invite message printed the wrong user for who issued the invite
* README, channel.c, free_user.c, handler.c, join.c, opennap.h, serverlib.c, synch.c, util.c:
added +INVITE channel mode
* README, channel.c, opennap.h, public.c, synch.c:
added +MODERATED channel mode - only ops and mods+ can speak in public
* README, channel.c, handler.c, join.c, list_channels.c, opennap.h, part_channel.c, synch.c, whois.c:
added channel_mode(10209) command
added +PRIVATE channel mode to make the channel not show up in the channel
lists or whois response
2000-06-15 drscholl <drscholl@users.sourceforge.net>
* network.c: solaris doesnt define INADDR_NONE
* buffer.c:
avoid coredump in queue_data() when buffer_new() fails
* search.c, server_usage.c:
server stat message should use %u for the number of total kbytes
search expected "EQUALS" intead of "EQUAL TO"
2000-06-14 drscholl <drscholl@users.sourceforge.net>
* README, channel.c, handler.c, opennap.h, privmsg.c:
added channel_wallop (10208) command to send a message to all mods+ and
channel operators for a specified channel
* config.c:
default max_nick_length changed to 19 since the win32 napster client can't
cope with anything longer than this
* userdb.c:
expired nicks weren't removed from User_Db until the server restarted
* login.c, userdb.c:
need to use strtoul() to convert ip address from string to unsigned int
instead of atoi()
* Makefile.am, Makefile.in, add_file.c, buffer.c, free_user.c, init.c, login.c, main.c, mempool.c, mempool.h, opennap.h, remove_connection.c, search.c, serverlib.c:
removed mempool code. it turned out to be less efficient that malloc/free
2000-06-13 drscholl <drscholl@users.sourceforge.net>
* buffer.c, login.c, server_connect.c, server_login.c, serverlib.c:
buffer_queue() did not set the .datasize after copying data
* buffer.c:
fixed buffer_queue() to handle input larger than BUFFER_SIZE bytes
* remove_connection.c:
fixed memory leak with free'g the input buffers for client connections
* buffer.c: fixed bug in buffer_compress()
* buffer.c, debug.c, free_user.c, init.c, login.c, main.c, mempool.c, opennap.h, remove_connection.c, serverlib.c, util.c:
added memory pool management for users, connections, send queue buffers
* Makefile.am, Makefile.in, add_file.c, init.c, main.c, mempool.c, mempool.h, opennap.h, search.c:
added initial support for memory pools
2000-06-11 drscholl <drscholl@users.sourceforge.net>
* README, login.c:
servers should not issue KILL messages to the server from which a nick
collision occurs
2000-06-10 drscholl <drscholl@users.sourceforge.net>
* setup.c, Makefile.in, TODO, search.c:
rewrote search_internal() to be able to parse arbitrary length search
strings
setup should create files as -rw-------
* Makefile.in, TODO, configure, configure.in, free_user.c, kill_user.c, login.c, opennap.h, synch.c:
added .killed member to CONNECTION so that a QUIT is not issued when a local
user is killed (the KILL is sufficient)
consolodated the MSG_SERVER_USER_IP message into MSG_CLIENT_LOGIN so that
nick collision can be handled more gracefully. This allows the server to
reject the newer user instead of rejecting both clients.
2000-06-09 drscholl <drscholl@users.sourceforge.net>
* Makefile.in, channel.c, configure, configure.in, muzzle.c:
check for -lsocket (needed for os/2)
fixed segfault in muzzle() for log message when the user is already muzzled
and the user is not logged in
* NEWS, README, configure, configure.in, opennap.h:
post 0.32 commit
2000-06-08 drscholl <drscholl@users.sourceforge.net>
* channel.c, login.c:
bug in channel_op() allows any user to make themself a channel operator.
missing a return statement after the permission denied message
servers now synch the user level when a user logs in to ensure all servers
have the same settings
* Makefile.in, NEWS, README, motd.c, opennap.h, opennap.opt, setup.dsp, ChangeLog:
updated for 0.31 release
motd.c was missing stdlib.h for free()
updated project files for Win32 build
* server_login.c:
server link log messages are important after all
* kill_user.c, search.c:
removed log() message from kill_user(). notify_mods() is sufficient
removed old log() in search_callback(). problem seems to be fixed.
* server_login.c:
added more notify_mods() calls in server_login() indicating server link
failures
2000-06-07 drscholl <drscholl@users.sourceforge.net>
* motd.c:
the motd file is now loaded into memory once at startup to reduce the
overhead of fileio every time a user logs in
2000-06-06 drscholl <drscholl@users.sourceforge.net>
* search.c:
removed log message for bitrate test since it seems to be working
* search.c:
added a log() message to search_callback() to print why the minbitrate test
fails for a search to track down the problem we have seen
* list_users.c:
added new flags to global_user_list():
z muzzled users
c cloaked users
* ban.c, login.c, main.c, opennap.h, util.c:
moved check for ip bans to login() so that the user name can be printed in
the mod notification
fixed ban save/load to store all bans in the long format. bans are now
restored to the same order they were dumped, so that the older bans are last
* search.c:
max linespeed and frequency checked for "at most" when the correct string is
"at best"
2000-06-05 drscholl <drscholl@users.sourceforge.net>
* search.c:
"at most" qualifiers were not passed to peer servers properly
* tresolv.c, tresolv.h, whois.c, Makefile.am, Makefile.in, configure, configure.in, main.c:
removed tresolv code since it wont work effectively
2000-06-04 drscholl <drscholl@users.sourceforge.net>
* search.c:
bitrate/samplerate search criteria weren't using BitRate and SampleRate
* configure, free_user.c, login.c, opennap.h, serverlib.c, whois.c:
initial changes to integrate support for dns names in opennap
* configure, configure.in, whois.c:
changed whois to report the dns name for local users
* Makefile.am, Makefile.in, ban.c, configure, configure.in, main.c, tresolv.c, tresolv.h:
added threaded dns lookup routines
2000-06-03 drscholl <drscholl@users.sourceforge.net>
* README, configure, configure.in, privmsg.c:
changed server link documentation in README to only describe the method of
putting both passwords in the file
added op and deop commands to chanserv. removed help for these items in
operserv.
* config.c:
allow mods+ to query config variables but not set them
* main.c, server_connect.c:
added notify_mods() to report server link failures
* search.c:
added "mp3z" to the list of tokens to ignore in filenames
* change.c, handler.c, opennap.h:
accept the change_email command even if its not supported
* login.c:
removed extraneous log messages from login()
added notify_mods() message to register_user()
* add_file.c, remove_file.c:
removed log message from remove_file() when the file requested is not shared
removed log message from add_file() for duplicates
instead of calling strlen() just calculate the difference between av[0] and
av[1] to detect long filenames in add_file/share_file
* main.c, server_usage.c:
added number of registered users to the server stats command
* add_file.c, config.c, init.c, main.c, motd.c, opennap.h, search.c:
motd is now only fopen'd once since it gets used all the time.
* ChangeLog, Makefile.am, Makefile.in, ban.c, configure, configure.in, kick.c, level.c, login.c, napster.txt, opennap.h, sample.conf:
fixed core in level(). user might be NULL so don't operate on it.
* config.c:
changed nick_expire to 31 days by default
* announce.c, buffer.c, handler.c, search.c:
removed several unnecessary log entries
error message from read() and write() should include the host for which the
error occured for better debugging
2000-06-02 drscholl <drscholl@users.sourceforge.net>
* README, change.c, join.c, level.c, login.c, muzzle.c, opennap.h, synch.c, userdb.c:
added timestamps to the channel modes on synch
changed the .created member of USERDB to be .timestamp. This field is now
used to keep track of when the entry was last modified so it can be used to
synch servers better.
fixed synch of cloak status. added ability to absolutely turn cloak on in a
server->server message
rewrote level() to be much cleaner
muzzle status was not correctly restored from the users file upon startup
new function create_db() created a USERDB struct based on a USER struct to
avoid duplicate code in level() and muzzle()
* channel.c, handler.c, join.c, level.c, opennap.h, privmsg.c, synch.c, README:
added timestamp to channels so that servers can sync the level and limit
properly
added drop channel (10207) command to turn a persistent channel into a
normal channel
* TODO, add_file.c:
prevent refcount overflow by discarding tokens in excess of 30
2000-06-01 drscholl <drscholl@users.sourceforge.net>
* hotlist.c:
only send the notice about the hotlist limit once to avoid flooding the
client
* main.c:
added dump_state() to dump all state info (users/channels/bans) to disk
on a periodic basis.
* add_file.c:
freqToMask() and bitrateToMask() now display the user and client info in
their error messages for debugging
* change.c, configure, configure.in, handler.c, level.c, login.c, muzzle.c, opennap.h, userdb.c, whois.c:
support for keeping client email address is now turned off by default.
added --enable-email configure option to turn it back on
* add_file.c, config.c, main.c, opennap.h:
added max_path variable to limit the length of a filename to the add_file()
command (default: 256)
* add_file.c:
add-directory() should process the rest of the line when it detects a
duplicate rather than aborting
* add_file.c, browse.c:
the browse result didnt use BitRate and SampleRate to get the real values
* add_file.c, browse.c, opennap.h, search.c:
compacted the DATUM struct since the bitrate and samplerate can only have a
few defined values
->hash member of DATUM should not be present when resume is disabled.
* login.c, opennap.h:
dont need the ->hash member of DATUM struct when compiling without resume
support
changed kill message for ghosts in login() to include the name of the
server where the ghost is connected
* login.c: ghost code was still buggy
* login.c:
fixed broken ghost code which caused a server core
* synch.c:
syncing the chanops didnt including the :sender parameter
* channel.c, login.c, remove_connection.c:
fixed login() to allow the ghost detection to proceed with the login without
killing both connections
2000-05-31 drscholl <drscholl@users.sourceforge.net>
* ChangeLog, NEWS, README:
updated files for 0.30 release
* announce.c, login.c:
announce() should use Operator as the nick when the user is cloaked
invalid_nick() should not allow `operator'
* login.c:
forgot to issue a KILL when terminating a ghost
* login.c, napster.txt:
server will now terminate old connections if a client logs in from the same
ip for the same nick. this allows clients to kill their own ghosts.
* ban.c, browse.c, change.c, channel.c, hotlist.c, join.c, level.c, login.c, opennap.h, privmsg.c, sample.conf, serverlib.c:
added generic invalid_nick_msg() function
* ban.c, change.c, config.c, kick.c, kill_user.c, main.c, muzzle.c, opennap.h, serverlib.c:
added max_reason configuration variable to limit the size of the reason
strings in the muzzle/kick/kill messages
* FAQ, config.c, list_users.c, part.c, public.c:
re-added the form_message() calls for public() and emote()
* config.c, configure, configure.in, login.c, main.c, napster.txt, opennap.h, sample.conf, topic.c:
added max_client_string config variable to limit the length of the client
version string in the login command
strlen() returns ssize_t so have to cast the Max_* to unsigned to avoid
compiler warnings
* Makefile.in, ban.c, config.c, download.c, hotlist.c, main.c, muzzle.c, opennap.h, privmsg.c, sample.conf, topic.c:
added max_ignore config var to limit user lists
added max_hotlist config var to limit user lists
added max_topic config var to limit channel topics
more fixes to detect invalid nicknames before they are used
* hotlist.c:
dont allow invalid nicks to be added to the hotlist
* login.c:
fixed bug in register_user() where the number of args was not checked
fixed bug in register_user() where an invalid nick could be registered
fixed bug in register_nick() where invalid nick was not checked for
* add_file.c, ban.c, browse.c, buffer.c, change.c, channel.c, client_quit.c, config.c, debug.c, download.c, getopt.c, handler.c, hash.c, hotlist.c, join.c, kick.c, kill_user.c, level.c, list.c, list_users.c, login.c, main.c, md5.c, metaserver.c, motd.c, muzzle.c, network.c, opennap.h, part.c, part_channel.c, patchnap.c, ping.c, privmsg.c, public.c, remove_connection.c, remove_file.c, resume.c, search.c, server_connect.c, server_links.c, server_login.c, serverlib.c, spyserv.c, synch.c, timer.c, topic.c, upload_complete.c, userdb.c, usermode.c, whois.c:
more checks to make sure that invalid channels and nicks are not passed back
to the client or to other servers
* change.c, download.c, kick.c, kill_user.c, opennap.h, privmsg.c, serverlib.c, whois.c:
modified nosuchuser() not to take the nick as an argument to prevent buffer
overflows
* config.c, configure, configure.in, join.c, kick.c, list_users.c, main.c, opennap.h, part.c, public.c, serverlib.c, topic.c, ChangeLog, NEWS, channel.c:
added exhaustive checks to make sure the channel name is valid in all
commands
* Makefile.in, buffer.c:
fixed buffer overflow when output to the client is larger than 1024 bytes in
one command
* ChangeLog, NEWS, main.c:
updated ChangeLog and NEWS for 0.28 release
schedule dump_channels() to happen at the user_db_interval
2000-05-30 drscholl <drscholl@users.sourceforge.net>
* opennap.dsp, opennap.h, opennap.opt, remove_connection.c, sample.channels, server_login.c, topic.c, Makefile.in, README, buffer.c, config.c, configure, configure.in, handler.c, main.c:
zlib is now a requirement to compile. removed all HAVE_LIBZ conditional
code.
fixed bug in topic() which caused a buffer overrun in the new code to change
\r and \n to space
* topic.c:
convert \r and \n in channel topics to space chars to avoid problems when
writing out the channels file
2000-05-28 drscholl <drscholl@users.sourceforge.net>
* TODO, add_file.c, download.c, upload_complete.c:
if resume support is disabled, dont store the md5 hash value and just return
a bogus zero value wherever it is called for
2000-05-27 drscholl <drscholl@users.sourceforge.net>
* Makefile.in, channel.c, main.c, opennap.h, part_channel.c, privmsg.c, synch.c:
added missing headers for clean compile with debug turned off
channel ops can now be specified in the `channels' file.
the channels file is now written out when opennap exits
* ban.c, network.c:
use nlogerr() in bind_interface()
* server_connect.c:
complete_connect() should abort if con->destroy is already set because the
error will have been cleared and check_status() will report no error
2000-05-26 drscholl <drscholl@users.sourceforge.net>
* network.c:
use inet_addr() to detect dot-quad format hostnames since gethostbyname() is
unreliable under win95
* README, channel.c, configure, configure.in, handler.c, join.c, kick.c, list_users.c, login.c, main.c, napster.txt, opennap.h, part_channel.c, privmsg.c, public.c, serverlib.c, synch.c, topic.c:
added support for channel operators
2000-05-25 drscholl <drscholl@users.sourceforge.net>
* buffer.c:
fixed crash when opennap is compiled with zlib and linking to a server with
compression turned off
* ChangeLog, NEWS, ban.c:
fixed spelling error of Connection in ban.c
updated ChangeLog
* config.c, privmsg.c:
fixes to compile cleanly with debugging off
2000-05-24 drscholl <drscholl@users.sourceforge.net>
* napster.txt:
updated spec wrt to the login messages
* README, TODO, handler.c, opennap.h, usermode.c:
changed user_mode() to user_mode_cmd() to avoid conflict with the
user_mode macro defined in <asm/ptrace.h> under Linux. This was causing
problems under LinuxPPC.
* list_users.c:
allow * to be specified for the server in global_user_list() to match users
on all servers (for use with the optional flags)
* Makefile.am, Makefile.in, buffer.c, config.c, handler.c, init.c, list_users.c, main.c, network.c, opennap.h, remove_connection.c, server_login.c:
added `l' flag to global_user_list() to match leeches
rewrote global_user_list_cb() because it did not work for multiple flags
fixed connect() failure under win32 (linking now works!)
fixed to bypass calls to zlib when the compression level is 0 since the
windows version is not complied with zlib at all.
* Makefile.am, Makefile.in:
fixed makefile.am to add logchk and remove README.WIN32 and README.UNIX
* logchk: added logchk script
* README.WIN32, TODO:
removed README.WIN32
MISSING LOG ENTRIES:
fixed bug in public() where the server should not use `tag' to send the
message to the cl ients since the server uses 403 instead of 402
added napchk script from wolf
added -b command line option to run opennap in the background.
$config_dir/log is opened as stdout to catch output from the process.
the pid is now stored in $config_dir/pid when opennap starts up to
facilitate external scripts to restart it when it dies
configure now checks for mlockall()
split Win32 and Unix installation notes into separate files for clarity
updated TODO file
the global MD5 hash table should not be compiled in when RESUME is
undefined, and the garbage collection should not be scheduled (was causing a
crash in the win32 build)
ignore search matches when both parties are firewalled
added README.WIN32 and README.UNIX to EXTRA_DIST
check for valid (>0) file size when adding files
privileged users should see who send publics and emotes even when other
users are cloaked.
Current_Time needs to be set in mkpass.c prior to calling init_random()
corrected mispelling of 'Foreward' in napster.txt
* join.c, login.c:
added $ to the list of characters not allowed in nick or channel names.
many clients use this character to denote a variable
* README.WIN32, init.c:
need <limits.h> for _POSIX_PATH_MAX
* README, README.UNIX, README.WIN32:
rewrote installation instructions to reflect the new setup utility
* Makefile.am, Makefile.in, opennap.dsw, opennap.opt, setup.c, setup.dsp:
added setup utility
2000-05-23 drscholl <drscholl@users.sourceforge.net>
* Makefile.in, NEWS, public.c:
fixed bug in public() where the server should not use `tag' to send the
message to the cl ients since the server uses 403 instead of 402
MISSING LOG ENTRIES:
added napchk script from wolf
added -b command line option to run opennap in the background.
$config_dir/log is opened as stdout to catch output from the process.
the pid is now stored in $config_dir/pid when opennap starts up to
facilitate external scripts to restart it when it dies
configure now checks for mlockall()
split Win32 and Unix installation notes into separate files for clarity
updated TODO file
the global MD5 hash table should not be compiled in when RESUME is
undefined, and the garbage collection should not be scheduled (was causing a
crash in the win32 build)
ignore search matches when both parties are firewalled
added README.WIN32 and README.UNIX to EXTRA_DIST
check for valid (>0) file size when adding files
privileged users should see who send publics and emotes even when other
users are cloaked.
Current_Time needs to be set in mkpass.c prior to calling init_random()
corrected mispelling of 'Foreward' in napster.txt
* Makefile.am, napchk:
added napchk script from wolf
MISSING LOG ENTRIES:
added -b command line option to run opennap in the background.
$config_dir/log is opened as stdout to catch output from the process.
the pid is now stored in $config_dir/pid when opennap starts up to
facilitate external scripts to restart it when it dies
configure now checks for mlockall()
split Win32 and Unix installation notes into separate files for clarity
updated TODO file
the global MD5 hash table should not be compiled in when RESUME is
undefined, and the garbage collection should not be scheduled (was causing a
crash in the win32 build)
ignore search matches when both parties are firewalled
added README.WIN32 and README.UNIX to EXTRA_DIST
check for valid (>0) file size when adding files
privileged users should see who send publics and emotes even when other
users are cloaked.
Current_Time needs to be set in mkpass.c prior to calling init_random()
corrected mispelling of 'Foreward' in napster.txt
* login.c:
fixed bug in login.c where it should have tested for
MSG_CLIENT_LOGIN_REGISTER instead of MSG_CLIENT_REGISTER. this was causing
automatic registration of all users who weren't already registered.
* Makefile.am, Makefile.in:
added README.WIN32 and README.UNIX to EXTRA_DIST
* Makefile.in, list_users.c, opennap.h, whois.c:
added support for the global user list (831) command
2000-05-22 drscholl <drscholl@users.sourceforge.net>
* sample.conf:
updated sample configuration file with new `server_ports' variable
* config.c, configure, configure.in, main.c, network.c, opennap.h, resume.c:
support for resume is now turned off by default, use configure
--enable-resume to turn it back on
added support for a list type configuration variable
boolean config vars could not be set by default or reset via the client
removed server_port configuration variable
created new list configuration variable `server_ports' which contains a
space separated list of ports to listen on for incoming connections
* server_connect.c, serverlib.c:
need to check for null return from next_arg() in kill_server() to prevent
segfault
* add_file.c:
check for valid (>0) file size when adding files
* public.c:
privileged users should see who send publics and emotes even when other
users are cloaked.
2000-05-21 drscholl <drscholl@users.sourceforge.net>
* public.c:
fixed problem with emote() not working over server links
* init.c, main.c:
fixes to compile under os/2
* README, README.UNIX, README.WIN32:
split Win32 and Unix installation notes into separate files for clarity
* README, mkpass.c, napster.txt:
Current_Time needs to be set in mkpass.c prior to calling init_random()
corrected mispelling of 'Foreward' in napster.txt
2000-05-19 drscholl <drscholl@users.sourceforge.net>
* TODO, util.c:
print_args() should not print to stderr so that when in background mode it
will get saved in the log file
* Makefile.in, config.c, configure, configure.in, init.c, main.c, opennap.h, util.c:
added -b command line option to run opennap in the background.
$config_dir/log is opened as stdout to catch output from the process.
the pid is now stored in $config_dir/pid when opennap starts up to
facilitate external scripts to restart it when it dies
configure now checks for mlockall()
2000-05-18 drscholl <drscholl@users.sourceforge.net>
* TODO, main.c:
updated TODO file
the global MD5 hash table should not be compiled in when RESUME is
undefined, and the garbage collection should not be scheduled (was causing a
crash in the win32 build)
* search.c:
ignore search matches when both parties are firewalled
2000-05-15 drscholl <drscholl@users.sourceforge.net>
* ChangeLog, NEWS, README, login.c, opennap.dsp, opennap.h, opennap.opt:
updated build for Win32 platforms
* Makefile.in, kick.c:
the reason in clear_channel() is not quoted from the client, so use
next_arg() instead of split_line() to parse the input
2000-05-13 drscholl <drscholl@users.sourceforge.net>
* configure.in, init.c, join.c, login.c, main.c, opennap.h, resume.c, sample.conf, Makefile.in, README, add_file.c, config.c, configure:
added --disable-resume to turn off server support for resume searching
added `lock_memory' configuration variable to prevent the process from being
swapped
added `registered_only' configuration variable to only allow registered
users to log in
added `auto_register' configuration variable to automatically register users
upon login
2000-05-09 drscholl <drscholl@users.sourceforge.net>
* add_file.c, config.c, handler.c, opennap.h, privmsg.c, util.c:
added command 870 for new share file supported in beta6
next_arg() now handles quoted parameters
* server_login.c:
get_server_pass() should return `server_password' if no local password is
specified
* ChangeLog:
updated the ChangeLog file with recent modifications.
failed log message from the previous commit:
modified get_server_pass() to optionally return the local password to use
(if specified in the config file) to avoid parsing the file twice.
* server_login.c:
modified get_server_pass() to optionally return the local password to use
(if specified in the config file) to avoid parsing the file twice.
* Makefile.am, Makefile.in, README, server_login.c, textdb.c, textdb.h:
rewrote get_server_pass() to use its own simple parsing routine to fetch the
password instead of using the textdb_*() functions.
added support for using different server passwords with each linked server
rather than always using the value of `server_password'. if a local
password is specified in the `servers' it will override the default
password.
* napster.txt, opennap.h, privmsg.c:
added missing 325 server response when the user to ignore is already ignored
2000-05-08 drscholl <drscholl@users.sourceforge.net>
* handler.c, kick.c, napster.txt, network.c, opennap.h, privmsg.c, server_links.c:
added entries for the server-side ignore list to the handler array.
update napster.txt with the numerics for server-side ignore
kick() should call notify_mods() prior to part_channel() in case the channel
is destroyed by kicking the last user out (Greg Prosser
<greg@snickers.org>).
set_limit() should just warn if FD_SETSIZE is smaller than the set hard
limit for max file descriptors.
2000-05-03 drscholl <drscholl@users.sourceforge.net>
* TODO, change.c, download.c, hotlist.c, join.c, opennap.h, part.c, part_channel.c, ping.c, privmsg.c, public.c, remove_connection.c, serverlib.c, usermode.c, util.c:
added server-side ignore/unignore functionality. this is not able to be
called by the user yet since the numerics are unknown
changed join/part to show the joins/parts to privileged users regardless of
the cloak status
added CLOAK usermode to en/disable the server notifications
* handler.c, init.c, join.c, login.c, main.c, napster.txt, opennap.h, part.c, public.c, util.c:
increased hash table size to 521 for users and hotlist for better
performance with many users
public() and emote() now find the channel by looking through the users
joined channel list with find_channel() instead of calling hash_lookup()
removed many extraneous log() messages about command parsing errors
switched to using ISUSER(user->con) instead of testing user->local
* hash.c, sample.conf:
replace hash function with the `ElfHash' used in the ELF loader since it
produces MANY less collisions
2000-04-30 drscholl <drscholl@users.sourceforge.net>
* README, handler.c, opennap.h, server_links.c:
changed numeric for server ping to 750 to match the official servers
* change.c, level.c:
setlinespeed didn't actually change the user's speed in the USER struct
* login.c: exempt mods+ from server bans
* Makefile.am, Makefile.in, TODO, change.c, handler.c, muzzle.c, napster.txt, opennap.h, unmuzzle.c:
consolodated the muzzle/unmuzzle code into one function
extended muzzle/unmuzzle to allow change for a registered user that is not
currently logged in
2000-04-28 drscholl <drscholl@users.sourceforge.net>
* ChangeLog:
updated ChangeLog with recent activity
missing log entries from last commit:
* change.c, join.c, public.c, whois.c:
publics and emotes should not be cloaked when the channel level is mod+
whois should show Cloaked state for privileged users
whois should hide channel membership for nonprivileged users when they
perform a whois on a cloaked user
added a period at the end of the notification of cloak status.
* change.c, level.c, login.c, muzzle.c, opennap.h, unmuzzle.c, userdb.c:
changed muzzle field in USERDB to flags and use the ON_* bitmasks instead
of individual fields.
cloak state is now saved in the userdb and restored when the user logs back
in.
* README, handler.c, opennap.h, server_links.c:
added ping_server() command (10116)
2000-04-27 drscholl <drscholl@users.sourceforge.net>
* README, privmsg.c:
added cloak to the list of operserv commands
* Makefile.in, change.c, kick.c, kill_user.c, list_users.c, muzzle.c, opennap.h, serverlib.c, unmuzzle.c:
kill, muzzle, unmuzzle and kick should not display the issuer's nick if they
are cloaked
cloak() should call notify_mods()
* README, TODO, browse.c, change.c, channel.c, handler.c, join.c, muzzle.c, napster.txt, opennap.h, part_channel.c, patchnap.c, privmsg.c, public.c, whois.c:
updated napster.txt with new findings from the linux nap v1.0 beta
changed numeric for the kick command to 829, per nap v1.0 beta
changed numerics for channel ban, unban and list per nap v1.0 beta
renamed chanban, chanunban, chanbanlist operserv commands to cban, cunban
and cbanlist.
added cbanclear to operserv commands
added the clear channel ban list command (424)
added the cloak user command (625). for cloaked users, parts/joins are not
sent and public messages show up as being from `Operator' instead of the
real nick that sent it.
added stub routine for global user list.
updated patchnap.c for linux nap v1.0 beta
* FAQ, README, privmsg.c:
added chanban and chanunban commands to operserv
added FAQ about max_browse_result/client_queue_length
* Makefile.in, channel.c:
fixed channel ban notify_mods() messages which were missing channel names
* README, ban.c, channel.c, configure, configure.in, handler.c, join.c, opennap.h, serverlib.c, util.c:
added first cut at channel bans
2000-04-26 drscholl <drscholl@users.sourceforge.net>
* Makefile.in, login.c, muzzle.c:
changed notification messages in login() wrt restoring muzzled state to
match those in the muzzle() command.
fixed muzzle() to allow for automatic server muzzling by avoiding a call to
pop_user(), which assumes a real user issued the command
* napster.txt:
updated protocol spec with additional info from Thomas van der Heijden
<thom@bart.nl>
* whois.c:
consolodated the whois response formation instead of separate commands for
each case. now normal users can see whether another user is muzzled
* login.c, muzzle.c, opennap.h, unmuzzle.c, userdb.c:
muzzle status is now saved in the user db so that it gets restored when the
user logs in again
* mkpass.c, opennap.h, usermode.c, util.c, Makefile.in, announce.c, configure, configure.in, handler.c, init.c, main.c:
added WALLOP user mode to disable wallops
use srand() and rand() to generate random numbers instead of hashing input
data with md5. the md5 code seems to generate lots of unaligned memory
accesses on alpha, and it really isnt critical to have cryptographic quality
random numbers. it should also reduce the cpu usage since it no longer has
to hash all input.
* join.c:
added support for automatic creation of rollover channels for predefined
channels
* login.c:
check for get_level() == -1 in reginfo()
2000-04-25 drscholl <drscholl@users.sourceforge.net>
* main.c, opennap.h:
Num_Gigs should be unsigned int to prevent a negative count when going about
2TB library size.
2000-04-24 drscholl <drscholl@users.sourceforge.net>
* TODO, userdb.c:
check for valid level when reading the userdb from disk
2000-04-20 drscholl <drscholl@users.sourceforge.net>
* ban.c, synch.c:
fixed loading and saving of bans to get the correct ban type
2000-04-19 drscholl <drscholl@users.sourceforge.net>
* Makefile.in, opennap.dsp, opennap.opt:
updated win32 projects files for 0.25
2000-04-18 drscholl <drscholl@users.sourceforge.net>
* ChangeLog, Makefile.am:
post 0.25 release commit
forgot to add sample.channels to EXTRA_DIST in Makefile.am
* NEWS, README, TODO, configure, sample.conf:
final changes for 0.25 release
* ChangeLog, channel.c, configure.in, login.c, opennap.h, sample.channels, search.c:
added "live" to the list of words to ignore in searches
restored full ChangeLog
updated version to 0.25
allow the channels file to contain blank lines
2000-04-17 drscholl <drscholl@users.sourceforge.net>
* README, ban.c, sample.conf:
fixed ban() not to check for permission from commands received from other
servers so that syncing will work properly
removed old entries from sample.conf
* muzzle.c, napster.txt, sample.channels, search.c, server_login.c, unmuzzle.c:
muzzle() should error if user is already muzzled
unmuzzle() should error if user is not muzzled
updated napster.txt to reflect the new use of 401 (part)
added "f" to the list of words to ignore in searches
avoid infinite loop in mark_links() by checking for a link already marked
before recursing on it
added sample.channels file
2000-04-15 drscholl <drscholl@users.sourceforge.net>
* Makefile.am, Makefile.in, ban.c, channel.c, config.c, init.c, main.c, motd.c, opennap.h, part_channel.c, sample.conf, server_login.c, userdb.c:
added `channels' config file to predefine persistent channels
removed user_db_path, server_db_path and motd_path config variables.
added config_dir variable to control where opennap should look for the
users, servers, motd, bans and channels files
* Makefile.in, login.c:
fixed bug in bad password error message which caused a crash
2000-04-14 drscholl <drscholl@users.sourceforge.net>
* Makefile.am:
added usermode.c to compile list
* ChangeLog:
updated ChangeLog with recent entries
* level.c:
allow users to demote their user level again
* level.c:
fixed bug in new level() code where an elite could not set another elite to
a lower level
* search.c:
added "downloads" to the list of words to ignore on searches
2000-04-13 drscholl <drscholl@users.sourceforge.net>
* README, announce.c, ban.c, handler.c, login.c, opennap.h, util.c:
added remote_notify_mods() command to allow a server to broadcast a message
to remote mods
server will no longer delink when a bad command is received.
user and host ban messages are now sent to all mods on all servers
all mods+ are notified when a user fails to log in as a privileged user
* join.c, level.c, login.c:
don't allow % in either nicknames or channel names for safety
fixed bug in format for log() message in channel_level() when a user tries
to set a channel to a level above their own
fixed bug in level() where the notification about the level change was sent
to the user who issued the change instead of the target user
* config.c, login.c, main.c, opennap.h, userdb.c:
removed Check_Expire global variable
added nick expiration to dump_userdb()
* ban.c, level.c, main.c, search.c:
allow the setuserlevel command to work when the user is registered but not
logged in
set SO_REUSEADDR on the stats port
2000-04-12 drscholl <drscholl@users.sourceforge.net>
* search.c: added additional debugging checks
* remove_connection.c, whois.c:
hash_free() was not called to free a local user's list of files
* kick.c, napster.txt:
clear_channel() needs to be careful about walking the list of users in a
channel since the call to part_channel() could free the current list pointer
* config.c, handler.c, main.c, opennap.h, sample.conf, util.c:
added max_command_length config var to control the max allowed length of a
client command
* ban.c, login.c, muzzle.c, unmuzzle.c, whois.c:
unban had a bug where it would tell you the ban was not found even if it
was.
muzzle and unmuzzle should optionally take a reason argument.
whois should display Muzzled instead of Active for muzzled users
* config.c, remove_connection.c, sample.conf:
no need to null out the uopt->files member in remove_connection()
changed default value of collect_interval to 300
added max_browse_result to sample.conf
2000-04-11 drscholl <drscholl@users.sourceforge.net>
* change.c, login.c, search.c:
the reason for a nuke is not required
added 'home' to the list of words to ignore in searches
* opennap.h, remove_file.c, serverlib.c, topic.c, upload_complete.c, userdb.c, usermode.c, whois.c, add_file.c, browse.c, change.c, download.c, free_user.c, level.c, login.c:
moved the list of shared files into the USEROPT struct since it only needs
to be present for locally connected users
change_pass(), alter_pass() and nuke() should releay the command to other
servers before checking if the account is locally registered, since the
userdb may not be entirely replicated
userdb_dump() sould unlink() User_Db_Path before calling rename() since it
causes an error under win32
notify_mods() is called with new usermode TOPIC when a topic of a channel
has been changed
compacted whois() to use the same snprintf() call for level>=moderator
* change.c, level.c, login.c, serverlib.c, usermode.c:
change_pass() and change_email() need to check for bad user input
added include files to prevent compiler warnings
* login.c:
register_user() did not call generate_pass() to generate the md5 password
* change.c:
alter password command was sending the md5-hashed password instead of the
raw password
* usermode.c:
usermode.c needs stdio.h for snprintf()
* handler.c, resume.c, search.c:
removed extraneous log messages
ignore the word "download" in searches
2000-04-10 drscholl <drscholl@users.sourceforge.net>
* search.c:
added "download" to the list of words to ignore when searching
* search.c:
added new words to ignore in the search table: scour, media, agent, on,
stuff
* usermode.c:
adding missing PORT string in User_Modes
initial mode should be set from current user mode in user_mode()
* kick.c, usermode.c:
fixed compilation warnings for usermode code
* usermode.c:
added new function handler user_mode()
* Makefile.in, ban.c, change.c, download.c, handler.c, hotlist.c, join.c, kick.c, kill_user.c, level.c, login.c, muzzle.c, opennap.h, privmsg.c, remove_connection.c, server_connect.c, server_login.c, serverlib.c, unmuzzle.c:
patch from colten edwards to allow ircd-like user levels to enable or
disable many server messages to privileged users
* ChangeLog, NEWS, sample.conf, sample.users:
final updates for 0.24 release
* README, add_file.c, search.c:
ignore "2" in filenames since it is a frequent occurance
* free_user.c:
update the last seen time for registered nicks when a user logs off
* login.c:
server should send a KILL when it detects a remote user with an invalid
nick
* change.c, serverlib.c:
change_email() did not prefix the server->server messgae with the nick of
the user who issued the command
nosuchchannel() and unparsable() now check for ISUSER() to avoid the need to
check every time those functions need to be called
* change.c:
the server-server message for change_pass() did not contain the user who
changed the password
2000-04-09 drscholl <drscholl@users.sourceforge.net>
* handler.c, join.c, kick.c, opennap.h:
added the clear channel (820) command
2000-04-08 drscholl <drscholl@users.sourceforge.net>
* handler.c:
handle_connection() should send the USER_SHARING message prior to execution
of the callback so that the proper information is sent to users when the
user joins a channel for the first time.
* free_user.c, handler.c, init.c:
Local_Files was not decremented in free_user()
added sig handler to call md_cleanup() on SIGUSR1
* main.c, server_connect.c:
fixed core in update_stats() on new log message for number of local files
login timer was not set on server connections
* README, handler.c, privmsg.c:
added the config and reconfig commands to OperServ
updated comment above the share/unshare termination detection to indicate
that if a user does not issue any more commands after sharing/unsharing,
the information will not get passed to the peer servers
* add_file.c, handler.c, opennap.h, remove_file.c:
add_file()/remove_file() now set a flag in the USER struct.
handle_connection() then checks for the end of the share/unshare messags
from the client by checking for a command other than share/unshare and
passes the final results to the peer servers
2000-04-07 drscholl <drscholl@users.sourceforge.net>
* add_file.c, main.c, opennap.h, remove_file.c, resume.c:
server now keeps track of how many files are available from local users
and displays this info in update_stats()
removed prototypes for outdated functions from opennap.h
* add_file.c, join.c, kick.c, login.c, main.c, muzzle.c, napster.txt, opennap.h, remove_file.c, serverlib.c, synch.c:
created new util functions nosuchchannel() and unparsable()
the optional reason in the muzzle command should be quoted if present
the optional reason in the kick command should be quoted if present
channel_limit() now only checks for privilege for local users so that the
limits can be synced by servers when linking
* README, userdb.c, util.c:
updated installation instructions
userdb_init() should only rewind() if the first line doesn't contain the
version information
log() no longer prefixes messages with `opennap: '
* Makefile.am, Makefile.in, buffer.c, handler.c, main.c, mkpass.c, mkpass.dsp, network.c, opennap.dsp, opennap.dsw, opennap.h, opennap.opt, opennap.plg, serverlib.c, snprintf.c, util.c:
added mkpass project to win32 workspace
created new macro N_ERRNO to be used in place of error when checking error
conditions from socket related function calls. win32 uses h_errno so this
should be used as a wrapper to make the code cleaner
added new macro nlogerr() which is like logerr() but should be used when
priting errors from socket related functions
* TODO, login.c:
major cleanup of login(). password should not be checked until after the
check for a user already logged in to prevent password guessing
* Makefile.in, kick.c, main.c, search.c:
missing channel name in the notify_mods() call in kick()
ignore "rock" and "new" in search strings
* NEWS, README, config.c, configure, configure.in, main.c, opennap.h, sample.conf, search.c:
updated version number to 0.24
added login timeout detection. default is to close client connections if
they have no logged in within 60 seconds
added "me", "to" and "rock" to the list of words to ignore in the search
table since over 5000 entries were detected
2000-04-06 drscholl <drscholl@users.sourceforge.net>
* change.c, opennap.h:
allow nuke_user() to take an optional reason for the revocation
* login.c:
delay setting the user's level from the db until after the notify_mods()
call so that the user is not notified twice of their change in status.
* Makefile.am, Makefile.in, config.c, handler.c, join.c, kick.c, list_channels.c, login.c, main.c, napster.txt, opennap.h, part.c, privmsg.c, sample.conf, server_usage.c:
added kick.c for the kick() function
added channel limit (826) command to specify the max users allowed in a
channel.
added full channnel list (827) command to show all channels with min level
and user limit
made the stats command accessable to normal users
fixed find_handler() search that could end up in an infinite loop in certain
cases.
* TODO, login.c, napster.txt:
updated TODO file
fix for coredump when a nonregistered user attempts to log in
updated napster.txt with new protocol findings
2000-04-05 drscholl <drscholl@users.sourceforge.net>
* browse.c, main.c:
data.max was not initialized to 0 in browse() causing a problem with
browsing users on the same server
* login.c, main.c:
reorganized the login() routine to allows privileged users to bypass the
max_connections restriction
should check for -1 instead of EOF in getopt() test
* add_file.c, search.c:
modification to use the soundex hash as the key for the File_Table. This
should decrase the amount of memory required for searching at the expense of
a little cpu, but should not affect the search results since it still uses
the same token based scheme once the smallest bin has been found.
2000-04-04 drscholl <drscholl@users.sourceforge.net>
* main.c:
update_stats() now prints out the number of entries in the File_Table hash
table to get an idea of its size
* mkpass.c, search.c, serverlib.c:
added copyright notice to mkpass.c and serverlib.c
tokenize() should ignore the words "of", "you" and "mp3's" because of the
high use of these words (>10,000 hits).
2000-04-03 drscholl <drscholl@users.sourceforge.net>
* mkpass.c, serverlib.c:
added new file mkpass.c to generate a md5 password
added new file serverlib.c for functions that reference opennap globals
* Makefile.am, Makefile.in, change.c, level.c, login.c, main.c, opennap.h, userdb.c, util.c:
added support for md5 passwords for user db
2000-03-31 drscholl <drscholl@users.sourceforge.net>
* ban.c:
issue a kill if we receive a login command from a remote server for a
locally banned user
* ban.c:
check_ban() should only set con->destroy for CLASS_UNKNOWN connections
* server_connect.c:
server_login() passsed the wrong field to the is_linked() function
* README:
updated README to discuss the new OperServ feature
* login.c, privmsg.c:
added pseudo user OperServ to allow privilegded users without builtin client
support for the opennap specific commands to be able execute them by using
/msg opserver ...
* userdb.c:
removed check for .nuked in dump_userdb()
* change.c, handler.c, login.c:
removed unnuke() command. nuking the account removes it permanently.
fixed encapsulated() to handle bad input data
* change.c, handler.c, opennap.h, userdb.c:
added support for nuking and restoring accounts
* ban.c, init.c, main.c, opennap.h:
added load/save bans feature from colten edwards.
* opennap.h, server_connect.c, server_login.c:
added is_linked() function to check to see if a server is already linked in
order to avoid server loops
* Makefile.in, ban.c, handler.c, login.c, main.c, opennap.h:
removed check_accept() function. the maximum connections is now enforced by
login() to avoid the situation where servers can't link because the number
of client connections has exceeded the maximum
accept_connection() now calls check_ban() directly
2000-03-30 drscholl <drscholl@users.sourceforge.net>
* handler.c, muzzle.c, network.c, privmsg.c, public.c, search.c, server_login.c, synch.c:
the long line truncation in public/emote needs to calculate the length based
upon the start of the data actually sent to the client. server->server
messages were being truncated in the _next_ packet.
2000-03-28 drscholl <drscholl@users.sourceforge.net>
* ChangeLog, NEWS, README, opennap.h:
win32 needs _POSIX_PATH_MAX defined to compile
update ChangeLog, NEWS and README for 0.23 release
* public.c:
crop publics and emotes that are longer than 128 chars rather than rejecting
them
* public.c, spyserv.c:
don't allow public or emote commands longer than 128 chars to prevent the
DOS attack against the windows napster client.
* main.c:
listen fd needs to be set to nonblocking so the loop over accept() doesn't
block the server.
* ban.c, login.c, main.c:
modified accept_connection() to loop until accept() returns an error
cli->destroy should be set in check_accept when max connections has been
reached.
2000-03-27 drscholl <drscholl@users.sourceforge.net>
* TODO, change.c, join.c, util.c:
only call notify_mods() if a users data port is set to a different value
than what is currently set to
join should send a 408 back to the user than joined, and not a 406.
split_line() now breaks on space, tab, cr or lf to separate words
* ban.c, change.c, config.c, init.c, level.c, login.c, main.c, opennap.h, userdb.c, whois.c:
changed user db into an memory-based hash table to improve performance.
the user db is dumped to disk every `user_db_interval' seconds (default:
1800)
* configure, configure.in, main.c, remove_connection.c:
remove support for poll() since it doesnt work well
2000-03-26 drscholl <drscholl@users.sourceforge.net>
* ban.c, main.c:
fixed but in main loop with select()ing fds
* util.c: more fixes
* main.c, util.c:
modified add_client() to find the first empty slot in the Clients[] array
* main.c:
should 0 out the old pointer when shifting down entries to fill holes
* main.c, util.c:
moved complete_connect() call to final loop to avoid altering Num_Clients in
the read loop
* main.c, util.c:
poll() still returns EINVAL under linux so the main loop now always shifts
down the CONNECTION pointeres to fill all holes.
2000-03-25 drscholl <drscholl@users.sourceforge.net>
* ban.c, login.c, main.c, opennap.h:
changed ban handling to use a LIST instead of an array
* buffer.c, debug.h, join.c, util.c:
added VALID_STR() debug macro for testing memory allocated by STRDUP()
validate_user() and validate_channel() should call list_validate() instead
of just checking the first entry in the list
* opennap.dsp:
committed .dsp file for win32 build
* join.c:
fixed error message for channel_level() to be more verbose to the client
* level.c, login.c:
fixed messages about changing a user's level to be consistent
* kill_user.c, server_login.c:
corrected log messages
* login.c:
reasons for a kill should be quoted in login()
* handler.c, level.c, login.c, search.c, server_login.c, synch.c, topic.c:
fixed sync_server() to send the locally connected server list first
fixed topic() to return the current topic if none is specified
fixed login() to notify_mods() when setting a user's level
2000-03-24 drscholl <drscholl@users.sourceforge.net>
* opennap.h, remove_connection.c, server_login.c:
need to recursively remove server link info behind servers that split
* server_login.c, synch.c:
fixed broken sync message for server links
* kill_user.c, level.c:
fixed bug in kill_user() where the size of the av[] was not correct in the
call to split_line()
* Makefile.am, Makefile.in, README, configure, configure.in, handler.c, network.c, opennap.h, opennap.opt, opennap.plg, server_links.c, server_login.c:
fixed to compile under Windows NT 4.0
* remove_connection.c, server_links.c, server_login.c, synch.c, README, handler.c, main.c, napster.txt, opennap.h:
added support for passing of server link info so that all servers know about
each other
* TODO, kill_user.c:
the reason for a kill should be quoted if it exists
* handler.c, level.c, main.c:
bail out without doing anything if the user level is set to the level that
was requested
* main.c:
need to reset the CLient id when shifting down the entries to fill gaps
* main.c:
modified main() loop to reduce the size of the Clients array if there are
more than 10 holes in it. this is to try and prevent EINVAL under linux,
which does a sanity check to make sure the nfds arg is smaller than the
current number of open fds
* main.c:
added debugging to find error with poll() call
2000-03-23 drscholl <drscholl@users.sourceforge.net>
* change.c, login.c, search.c:
fixed bad log message in login() with missing arg for %s
%s should be %d in log message in alter_port()
2000-03-22 drscholl <drscholl@users.sourceforge.net>
* search.c:
removed log message from cancel_search()
* main.c:
added extensive debugging checking if poll() fails with EINVAL
* level.c, main.c, whois.c:
allow normal user's to change their own level to leech
don't call FD_ISSET on a fd with value -1
the windows client can't part "" in the whois response, so ensure it always
contains at least one space
* handler.c, login.c, part.c, remove_connection.c, search.c:
fixed memory leak in user_ip() which occurred when nick collisions happen
removed debug log message from handle_connection() when unprocessed bytes
remain
rewrote cancel_search() to send final ACKs when a server quits before
sending all acks
* join.c:
fixed botched send_cmd() in channel_level()
* join.c, login.c, main.c, search.c:
added more checks for out of memory conditions
* join.c:
allow channel_level() to be called with only the channel name to report the
current level
* login.c:
display the ip address when a banned user attempts to log in
* handler.c:
use a binary search to look up the handler for each received message
2000-03-21 drscholl <drscholl@users.sourceforge.net>
* napster.txt: updated protocol information
* login.c, main.c:
fixed memory leak in login() when the login fails
exit main loop on poll() error
* change.c, handler.c, join.c, napster.txt, opennap.h, part.c:
added 'set user password' (753) admin command
added 'set user speed' (625) admin command
* main.c:
fixed accept_connection() to check for out of memory errors
* upload_complete.c:
upload_ok() should call print_args() when it detects a malformed message
* search.c:
added checking for out of memory errors in search_internal()
2000-03-20 drscholl <drscholl@users.sourceforge.net>
* main.c:
bandwidth stats need to be printed with %f not %d
* main.c:
bandwidth usage stats were not in kbytes/sec.
Last_Click was not updated.
* join.c:
invalid_channel returned 1 for count>0
* buffer.c, handler.c, main.c, opennap.h:
added total input/output bandwidth usage statistics.
* join.c, login.c:
added a check for valid channel name
2000-03-19 drscholl <drscholl@users.sourceforge.net>
* TODO, join.c:
check for missing channel name in join()
2000-03-18 drscholl <drscholl@users.sourceforge.net>
* join.c, synch.c:
synch_server() should send the channel level it is other than LEVEL_USER.
* README, handler.c, join.c, opennap.h:
added new command 10201 to set the minimum user level required to enter a
channel.
* ChangeLog, NEWS, configure:
post release commit for 0.22
2000-03-17 drscholl <drscholl@users.sourceforge.net>
* kill_user.c, unmuzzle.c:
allow any user to kill/unmuzzle a user that is below their level
* napster.txt, server_links.c:
server_links() should allow the command to be issued by a remote user.
updated the text for message 300 in napster.txt
* download.c, login.c, opennap.h, opennap.spec, util.c:
added print_args() utility function for use in dumping the input command for
error messages
* README, announce.c, configure.in, opennap.h:
wallop() was using the wrong tag for the response to the client
* handler.c:
fixed error in encapsulated() where it was using con->sendbuf instead of
con->recvbuf to get the packet to relay
* README, free_user.c, login.c, opennap.h:
removed log message from free_user()
* NEWS, README, ban.c, init.c, login.c, napster.txt, network.c, part.c, search.c, textdb.c, AUTHORS:
incorporated OS/2 port from Brian Smit <dbsoft@technologist.com>.
fixes to compile cleanly under Solaris 2.7 with egcs 1.1.2
updated REAMDE with list of supported operating systems.
* handler.c, search.c:
fixed memory leak in remote search functions if the server that we received
the search request from splits before we send the ack for the search
* README, announce.c, handler.c, opennap.h, part_channel.c, public.c, util.c:
fixed bug in encapsulated() where the complete packet was not correctly
relayed when the recipient of the message is not local.
added format_message() utility function
* buffer.c:
minor modifications to buffer_decompress() to avoid unecessary operations
* browse.c, buffer.c, client_quit.c, handler.c, upload_complete.c:
removed additional extraneous logging messages
rewrote the buffer_compress() routine in hopes of solving the server link
problem.
* download.c, handler.c, main.c, search.c:
removed many log messages that are no longer really necessary.
dispatch_command() will now dump the contents of the input buffer when it
detects a command that is unknown, and will automatically close the
connection to another server upon this error
2000-03-16 drscholl <drscholl@users.sourceforge.net>
* add_file.c, announce.c, ban.c, buffer.c, change.c, download.c, free_user.c, handler.c, join.c, kill_user.c, level.c, login.c, main.c, muzzle.c, opennap.h, part.c, public.c, remove_connection.c, remove_file.c, search.c, server_connect.c, server_links.c, server_login.c, server_usage.c, topic.c, unmuzzle.c, util.c:
made the server list a real LIST instead of an array. removed global
Num_Servers. pass_message_args() will now return without doing anything if
there are no connected servers so that each handler routine doesn't have to
check for Servers!=0.
2000-03-15 drscholl <drscholl@users.sourceforge.net>
* level.c:
fixed broken log message causing a segfault
* buffer.c, level.c:
level() should register the nick if not present in the local db and the user
level is moderator or higher.
* join.c:
the 406 join message should only be sent to local users
* join.c, privmsg.c:
fixed sequence of commands generated by the join commmand.
removed commented out code from privmsg.c
* join.c:
fixed coredump on log message when a user has reached max channel membership
2000-03-14 drscholl <drscholl@users.sourceforge.net>
* public.c:
fixed bug with relaying the emote command to remote servers
* handler.c, login.c, opennap.h:
added register_user() command (10200) to allow admins to force registration
of user accounts
* login.c:
user_ip() should use strtoul() to convert the string ip into an integer.
* join.c, login.c, server_connect.c, server_login.c:
modified join() to alloc the memory required before sending any messages to
clients so that if memory runs out we can recover the state.
server_connect() should allow duplicate connects to the same host on
different ports.
user_ip() should case the result of strtol() to unsigned int.
server_login() should notify local admins when another server attempts to
join
2000-03-12 drscholl <drscholl@users.sourceforge.net>
* login.c:
register_nick() should only fail if the user is already logged in.
2000-03-11 drscholl <drscholl@users.sourceforge.net>
* search.c:
need to keep a local flag in the DSEARCH struct for use with checking where
to send the final ACK in remote_search_end. if the local user logs off then
search->con will be invalid so we can't use ISUSER(search->con) to decide.
2000-03-10 drscholl <drscholl@users.sourceforge.net>
* Makefile.am, Makefile.in, configure, handler.c, opennap.spec, sample.servers, sample.users, textdb.c:
handle_connection() should loop around read() when getting a packet header
since some clients send it in two pieces
added sample users and servers files, and a rpm spec file for building a
binary package for Red Hat users.
* handler.c:
fixed partial packet header reading again.
* handler.c:
fix to read the packet header in multiple pieces
* handler.c:
check to see if 4 bytes of the header have been read after the initial
read
* handler.c:
write a nul (\0) char at the end of the data in handle_connection() when
an error is detected so that the log message is readable
* handler.c:
tag and len should be unsigned short integers
* add_file.c:
fix to abort nicely if the user hash table can't be allocated
* buffer.c, handler.c, main.c, opennap.h, remove_connection.c:
rewrote input handler to avoid allocating a new buffer every time data is
read. instead, a single buffer is reused and extended if required. all
input is processed as it is read now instead of breaking the reading and
processing into two steps.
* list.c, list.h:
added macro LIST_NEW() as a wrapper around list_new() so that it gets
inlined when DEBUG is turned on.
2000-03-09 drscholl <drscholl@users.sourceforge.net>
* hotlist.c:
fixed hotlist bug. the hotlist entry was not being removed from the user's
personal list in the CONNECTION struct
* hotlist.c, opennap.h:
more debugging to find the hotlist problem.
* README, hotlist.c, list.c, list.h, sample.conf, util.c:
added list_validate() function to be used in tracking down the hotlist bug
* hotlist.c, opennap.h, remove_connection.c, util.c:
simplified hotlist removal code by calling list_delete() instead of
iterating through the list.
need to set con->uopt.hotlist to 0 after call list_free() to avoid ASSERTing
in cancel_search()
* list.c:
called FREE on the wrong pointer in list_delete()
* util.c:
seed the random number context with as many bytes as are read, even if less
than requested.
* add_file.c, hotlist.c:
forgot to set hotlist->magic when creating a new entry
forgot to set list->data when adding a file to the db
* add_file.c, hotlist.c, join.c, list.c, list.h, remove_connection.c, search.c, textdb.c, userdb.c:
removed all use of list_new() and list_append() to track down the memory
leak. the debug info should now show where the leaked memory is being
allocated.
* napster.txt, opennap.h, remove_connection.c, search.c, util.c:
[napster.txt] changed text for 404 message to describe it as a generic error message
[util.c] split_line should eat extra whitespace between fields
when a local user quits, any pending searches should be marked as invalid so
that when the results come back the ->con pointer in the DSEARCH structure
is not used.
rather than for a specific value.
* search.c:
should have compiled before committing the last fix.
* search.c:
duplicate tokens should not be added to the list in tokenize(). this makes
the search function return the same file multiple times.
* change.c, debug.c, join.c, list.c, login.c, main.c, part.c:
reformatted some code with indent
fixed memory leak in reginfo() where userdb_free() was not called.
* add_file.c, debug.c:
commented out memory dump from debug_cleanup()
reformatted the code in add_file.c
2000-03-08 drscholl <drscholl@users.sourceforge.net>
* login.c:
db->lastSeen was set from get_level() when it should be atol()
* login.c:
db->nick was not set when creating a new db entry in reginfo()
* download.c, login.c, resume.c, search.c, synch.c, upload_complete.c:
changed most instances of %lu to %u since we only use 32-bit integers.
* opennap.h, search.c, util.c, handler.c, main.c:
only use /dev/random to seed the random context. on servers the system
random pool gets eaten up too fast.
* debug.c, search.c, server_login.c, userdb.c:
fixed to handle generate_search_id() returning NULL.
2000-03-07 drscholl <drscholl@users.sourceforge.net>
* util.c:
add_client did not set the .id member when growing the array.
* login.c:
user->pass was not free'd if there was an error during login
* debug.c, join.c:
no need to test for block->file being NULL when we are only referencing
a static memory block.
muzzled users should not be allowed to join chat channels
* debug.c:
debug code doesn't need to strdup() the file passed in, it can simply
reference it since it is static memory.
got rid of the .prev pointer in the BLOCK struct. we can walk the list of
block with a BLOCK** pointer instead.
* TODO, download.c, upload_complete.c:
fixed upload_ok() to use send_user() instead of send_cmd() since the
downloader could be on a remote server.
removed PostgreSQL from the TODO list since we no longer use a SQL db.
* announce.c, kill_user.c, main.c, opennap.h, remove_connection.c, search.c, server_links.c, upload_complete.c, util.c:
Modified the main loop to stop shifiting down the CONNECTION array to fill
the holes. add_client() will insert new connections into the holes, or
grow the array if its all full. Added new global Max_Clients which should
be used in any contruct that needs to loop over all local connections,
avoiding the entries that are set to NULL (holes).
* buffer.c, main.c:
use a new local variable numClients for the loop test constructs since
Num_Clients gets changed by the accept_connection(). this may be the cause
of all those immediate disconnects.
* search.c:
use a faster algorithm for walking the list when deleting invalid entries
from the files list
* search.c:
tokenize() should ignore common words because they are not useful in
searching
fdb_collect_garbage() will now print messages about bins with more than
10,000 entries so that they can be considered for addition to the ignore
list
* AUTHORS, configure.in, init.c, main.c, network.c, opennap.h, timer.c:
solaris port (jones@users.sourceforge.net)
* add_file.c, browse.c, client_quit.c, download.c, handler.c, opennap.h, remove_file.c, server_login.c, synch.c, upload_complete.c, util.c, whois.c:
added the ability to download files and browse users on other servers
server stats for users/files/size is again global for all linked servers
2000-03-06 drscholl <drscholl@users.sourceforge.net>
* add_file.c, announce.c, ban.c, browse.c, change.c, client_quit.c, download.c, handler.c, hash.c, join.c, kill_user.c, level.c, login.c, main.c, muzzle.c, opennap.h, part.c, ping.c, privmsg.c, public.c, remove_connection.c, remove_file.c, search.c, server_connect.c, server_links.c, server_login.c, server_usage.c, synch.c, topic.c, unmuzzle.c, upload_complete.c, userdb.c, util.c, whois.c:
server message are no longer automatically forwarded by handle_connection().
each handler is now responsible for forwarding the message if necessary.
implemented the ability to search on remote servers so that the entire file
database isn't replicated on every server.
several of the server query functions now take an optional server argument
to get the status of a remote server rather than the one the client is
connected to.
* sample.conf, config.c, init.c, main.c, network.c, opennap.h:
added max_data_size and max_rss_size configuration variables to adjust
sytem limits on memory usage per process
* change.c, server_connect.c:
fixes to compile cleanly with debugging turned off
* opennap.h, textdb.c, util.c:
added `#define USE_CRLF 1' for use on win32 to write \r\n at the end of each
line in the database
modified next_arg() to use space, \r, \n and \t as word separators, and to
set the argument to 0 when hitting the \0 in the source string to avoid
returning an extra empty string
* Makefile.in, add_file.c, ban.c, buffer.c, configure, configure.in, hotlist.c, login.c, main.c, opennap.h, public.c, server_connect.c, server_login.c, synch.c, textdb.c, timer.c, userdb.c, util.c:
created logerr() macro as a wrapper for libc errors
used OUTOFMEMORY() macro when memory errors occur
don't use next_arg() in public() because it will strip leading space from
the user's message
2000-03-04 drscholl <drscholl@users.sourceforge.net>
* Makefile.am, README, config.c, configure.in, main.c, opennap.h, sample.conf, textdb.c, textdb.h, userdb.c:
removed all variables pertaining to mysql
updated the installation instructions to reference the new flat text file
user and server databases
* Makefile.am, Makefile.in, change.c, compress.c, config.c, configure, configure.in, create_db.sql, db.c, init.c, level.c, login.c, main.c, opennap.h, sample.conf, server_connect.c, server_login.c, textdb.c, textdb.h, userdb.c, whois.c:
removed all references to MySQL from the code base.
added flat file text database for use with user and server lists.
2000-03-03 drscholl <drscholl@users.sourceforge.net>
* search.c:
reenable code to reject search matches for a user's own files
search term for equality is "EQUAL TO", not "EQUALS" according to the
protocol specification.
added error reporting to the client if the comparison operation in a search
string is unknown.
* getopt.c, main.c:
added copyright notice to getopt.c
fixed broken usage() output
* ChangeLog, Makefile.in, NEWS, README:
ChangeLog is now generated by rcs2log.
Moved contents of the NEWS file into README. NEWS is for user visible
changes in accordance with the GNU standards.
* Makefile.am, opennap.dsp, opennap.opt, opennap.plg:
integrated updated visual c++ files
* init.c, main.c, network.c, opennap.h, getopt.c:
fixes to compile under win2k (Damian Hodgkiss)
* napster.txt, whois.c:
fixed bug in whois response. the total downloads comes before total uploads
in the mod+ version
added additional documentation on the 613 and 626 commands.
2000-03-02 drscholl <drscholl@users.sourceforge.net>
* join.c, timer.c:
needed to include stdlib.h to compile cleanly without debugging on
* ChangeLog, add_file.c, config.c, login.c, main.c, opennap.h, remove_connection.c, search.c:
removed old code and and -DLESSMEMORY flag since that is now the default
modified core search function to using str*() functions instead of calling
tokenize() on the filename
fixed bug in login() where the number of fields in the client login (6)
was not checked, which lead to a coredump if the last field was not present.
* hash.c, hash.h, list.c, opennap.h:
catch out of memory error conditions in list and hash functions
* hotlist.c, list.c:
reconciled differences in hotlist code
* NEWS, hotlist.c, remove_connection.c:
fixed memory leak in remove_connection() where it did not free empty hotlist
entries
* login.c: dont allow nul usernames
* main.c, napster.txt, public.c:
fixed emote command to check for required quotes around the text portion
of the message.
2000-03-01 drscholl <drscholl@users.sourceforge.net>
* getopt.c:
added getopt() replacement for Win32 which doesn't have this function
* join.c, list_channels.c, list_users.c, part.c, part_channel.c, public.c, synch.c, topic.c, util.c:
fixed compilation errors with new list code
* Makefile.am, Makefile.in, add_file.c, buffer.c, change.c, client_quit.c, download.c, free_user.c, handler.c, hotlist.c, join.c, kill_user.c, level.c, list.c, list.h, login.c, main.c, muzzle.c, opennap.h, part_channel.c, ping.c, privmsg.c, public.c, remove_connection.c, search.c, server_connect.c, server_links.c, server_login.c, server_usage.c, topic.c, unmuzzle.c, upload_complete.c, util.c, whois.c:
added new files list.c and list.h to contain the generic list routines.
switch to using LIST instead of arrays for many things which don't need to
be directly indexed.
optimized USER and CONNECTION structs to require as little memory as
possible.
* main.c, opennap.h:
optimized fields in the DATUM struct to be as small as possible
* TODO, add_file.c, hotlist.c, opennap.h, search.c:
added -DLESSMEMORY to force the server to regenerate the token list when
comparing rather than storing it in the database
* main.c, timer.c:
changed next_timer() to return the time offset in seconds of when the next
timer is scheduled
* network.c:
need to include sys/time.h before sys/resouce.h on bsdi
* main.c, opennap.h, timer.c:
added next_timer() function to give the time at which the next pending event
is scheduled. the main even loop in the server should never block for
longer than when a pending even is scheduled
* ChangeLog, Makefile.am, Makefile.in, ban.c, init.c, join.c, main.c, opennap.h, timer.c:
added timer functions for scheduling periodic events (colten edwards)
added global variable Current_Time which is set once per iteration of the
main loop. functions which need the current time should use this variable
rather than calling time()
* buffer.c, hotlist.c:
removed error message that were too verbose from send_queued_data() and
add_hotlist()
* init.c:
handle SIGPIPE to avoid terminating the process when writing to a connection
that got shut down
* add_file.c, search.c:
added additional debugging output to the add_file() and associated
routines
* main.c:
moved the check for connections to the stats port to before the new
connections port since the latter modifies Num_Clients and it was throwing
of the check for connections to the stats port
* handler.c, init.c:
fixes to compile cleanly with debugging turned off
* browse.c, search.c:
allow max_browse_result to be 0 to indicate unlimited
added additional debugging to free_flist()
2000-02-29 drscholl <drscholl@users.sourceforge.net>
* Makefile.in, handler.c, init.c, main.c, opennap.h, Makefile.am:
main.c was getting too big. broke out initialization code into init.c and
connection handling code into handler.c
* ChangeLog, main.c, network.c:
added support for the opennap server to listen on port 8889 to report stats
about the server to interested parties
* NEWS, add_file.c, ban.c, configure, configure.in, kill_user.c, opennap.h, privmsg.c, public.c, topic.c, util.c:
added various checks for memory exhaustion to recover "gracefully"
* ChangeLog, FAQ, network.c, search.c, util.c:
check for out of memory errors in tokenize()
2000-02-28 drscholl <drscholl@users.sourceforge.net>
* add_file.c, ban.c, config.c, configure, configure.in, main.c, network.c, opennap.h, sample.conf:
allow max_shared to be 0 to allow unlimited sharing
added new config vars 'uid' and 'gid' to specify the uid/gid to switch to
if running as root (uid 0)
added new config var 'connection_hard_limit' to specify the maxium number
of file descriptors the process can use
added configure option --with-fd-setsize to specify the maxium number of
filedescriptor that can be used on select() based systems
* config.c, main.c, opennap.h:
added new config variable `collect_interval' to control the interval between
garbage collection
* buffer.c, change.c, level.c, login.c, napster.txt, opennap.h, privmsg.c, util.c:
fixes to compile cleanly with --disable-debug
added safe_realloc() function for detection of memory exhaustion
2000-02-27 drscholl <drscholl@users.sourceforge.net>
* hotlist.c:
print tag value out when the user attempts to add another user already in
their hotlist
* add_file.c, free_user.c, hotlist.c, resume.c, util.c:
log() messages in add_file() and share_file() were missing the nick, causing
a segfault
2000-02-26 drscholl <drscholl@users.sourceforge.net>
* opennap.h, resume.c:
rearranged members of the DATUM struct.
added additional debug statement to resume()
* add_file.c, opennap.h, search.c, synch.c:
added a new content type CT_MP3 to serve as a default. CT_AUDIO doesn't
necessarily mean audio/mp3
* ChangeLog, FAQ, add_file.c, main.c, metaserver.c, opennap.h, search.c, synch.c:
restored sharing of multimedia files.
* ChangeLog:
updated ChangeLog with recent changes
* buffer.c, main.c:
modified buffer_compress() to allocate one 16k output buffer and compresss
as much data as will fit in it. this is necessary since queue_data() can
now produce multiple 16k buffer chunks for server connections.
2000-02-25 drscholl <drscholl@users.sourceforge.net>
* main.c:
changed listen() queue backlog to a value of 50
* README, main.c, opennap.h, server_usage.c:
added number of global users, server start time, and server uptime to the
10115 server stats reply
* kill_user.c:
should set user->con->destroy=1 when killing a local user, not con->destroy
* main.c, search.c:
if multiple FILENAME CONTAINS clauses are specified, treat them as an
implicit AND operation
* Makefile.in, main.c, opennap.h, search.c:
added a garbage collection routine to run every 60 seconds to free up memory
associated with invalid entries
* ChangeLog, Makefile.am, README, main.c, opennap.h, server_links.c:
added new command 10112 to show the server links (colten edwards)
* AUTHORS, ChangeLog, Makefile.am, Makefile.in, debug.c, debug.h, main.c, opennap.h, server_usage.c:
added a new command 10115 for getting some useful information about the
server (colten edwards)
* upload_complete.c:
upload_ok() was looking in the downloader's hash table for the file info,
should be the uploader's table
* main.c:
forgot to uncomment the free_hash() on the File_Table
* search.c:
nick was printed using %d instead of %s when returing search results
* search.c:
fdb_search() should return if it can't find a search token in the hash table
since we can be sure there are no matches
* search.c: fixed bug in fdb_search()
* ChangeLog, whois.c:
minor whois change
* browse.c, buffer.c, change.c, config.c, configure, configure.in, db.c, debug.c, debug.h, download.c, free_user.c, hash.c, login.c, main.c, opennap.h, remove_file.c, resume.c, search.c, server_connect.c, server_login.c, synch.c, upload_complete.c, util.c, add_file.c:
wrote new database for storing the library. we now use a hash table based
on word tokens in the filename, with a list of files for each word
modified malloc debugger to use a hash table to store the allocation
information because a single list was too slow for large amounts of data
modified buffer_queue() to allocate chunks of memory and allocate a new
buffer in the list if there is not enough room to append, instead of using
realloc. this should improve performace
began adding extra checks for when we run out of memory so that we can
recover gracefully.
2000-02-24 drscholl <drscholl@users.sourceforge.net>
* main.c:
we should force a call to send_queued_data() in main() if the connection is
about to be shut down. in this case we write as much as we can before we
close the socket.
* main.c:
no longer necessary to check for existence of the client pointer because
it won't be removed except by the main() routine itself.
* buffer.c, kill_user.c, login.c, main.c, opennap.h, remove_connection.c, server_connect.c:
remove_connection() should now only be called from the main() routine.
other functions that wish the client connection to be shut down should
set the .destroy memory to a nonzero value.
* whois.c, change.c:
username was printed out using %d instead of %s in alter_port()
the whois response now inclues the server the user is connected to if the
user level of the client issuing the request is admin+
* buffer.c:
send_queued_data() should call buffer_free() on the output buffer before
calling remove_connection()
* buffer.c, main.c:
send_queued_data() should call remove_connection() instead of setting
con->destroy=1 since it is safe to free the CONNECTION pointer at
that point.
2000-02-23 drscholl <drscholl@users.sourceforge.net>
* download.c: more logging in download()
* buffer.c, client_quit.c, download.c, free_user.c, remove_file.c:
need to call fudge_path() on filename before SQL query in remove_file()
fixed download() to send the correct 203 command when the uploader is
firewalled.
added log messages for sending/receving client quit messages
* download.c:
queue_limit() should check for mysql_num_rows() > 0 before calling
mysql_fetch_row()
* client_quit.c, download.c, kill_user.c, napster.txt:
fixed client_quit() to avoid calling hash_remove() when it detects a QUIT for
a local user
* ChangeLog, main.c:
send_queued_data() should be called if there is uncompressed data waiting to
be sent to the server
* client_quit.c, download.c, kill_user.c, login.c, main.c, remove_file.c, upload_complete.c:
reformatted log() messages for the upload/download functions
2000-02-22 drscholl <drscholl@users.sourceforge.net>
* login.c, main.c:
alter_port() was not listed in the handler callback table
* download.c, kill_user.c:
download() should use validate_user() instead of just VALID()
use next_arg() in kill_user() instead of plain strchr()
* buffer.c, change.c:
fixed buffer_uncompress() to set .datamax when calling realloc().
* ChangeLog, buffer.c, opennap.h:
modified buffer_queue() to allocate memory in 1k chunks to avoid calling
realloc() too often
modified buffer_compress() to allocate memory in 2k chunks to avoid calling
realloc() too often
* ChangeLog, network.c, opennap.h, server_login.c:
set SO_SNDBUF and SO_RCVBUF to 16k for server-server tcp connections
* ChangeLog, change.c, opennap.h:
added support for 613 command for admin to alter the data port the client is
listening on (only works with the win32 clients)
* ChangeLog, browse.c, buffer.c, config.c, main.c, napster.txt, opennap.h, resume.c, search.c:
calls to write() should check for EWOULDBLOCK to avoid closing the
connection unnecessarily
added max_browse_result config variable to control the maxium number of
entries returned on a /browse command (default 1500)
allow max_search_result to be 0 to allow for arbitrary size searches
* public.c:
fixed bug where the first char of a public message gets chopped off
* db.c, login.c, public.c, resume.c:
reduced max filename size to 150 to try to avoid mysqld crashes.
fixed bug in resume() where the md5 attribute was not quoted in the SQL
query.
change order in login() to wait until after the login/email ack has been
sent before sending the notification of the user level being changed to
avoid breaking the win32 client.
2000-02-19 drscholl <drscholl@users.sourceforge.net>
* download.c:
functions that call transfer_wrapper() need to check the return value
* ChangeLog, add_file.c, config.c, configure, configure.in, login.c, main.c, metaserver.c, network.c, opennap.h, search.c:
added fixes for clean compile under Solaris 2.6
handle_connection() now prints the tag and how many bytes it is waiting for
when it detects that it needs to wait for the whole data packet to arrive
2000-02-18 drscholl <drscholl@users.sourceforge.net>
* README, main.c, opennap.h, privmsg.c, whois.c:
mod+ users are now notified when someone does a /whois on them
* db.c, debug.c, network.c, remove_connection.c:
debug_malloc() should exit gracefully if memory runs out
adjust the size of the filename field in the library SQL table to be 237
chars. mysql 3.22.23 seems to crash if the fields is any longer.
* README, db.c:
optimized the library SQL table to use as small as possible size integers
* remove_file.c:
added more ASSERT() tests for Num_Files<0
* free_user.c, remove_file.c, sample.conf:
added debugging code to try and detect when Num_Files < 0
* ChangeLog, Makefile.in, aclocal.m4, configure, configure.in:
added AM_MAINTAINER_MODE macro to configure.in
* search.c:
fixed the search() function for the linespeed,bitrate&frequency attributes
where an `&&' was not placed before the test in the SQL query string.
2000-02-17 drscholl <drscholl@users.sourceforge.net>
* ChangeLog, NEWS, README, level.c, napster.txt:
modified level() to update the db for registered accounts when a user's
level is changed, so that it is persistent across logins
* login.c:
fixed bug in register_nick() where there was no "return;" when the MySQL
query failed.
* download.c, napster.txt:
fixed broken queue limit server message (620) which did not include the file
size
* configure, configure.in, opennap.h:
added --disable-random option to configure to turn off use of /dev/random
on machines which have it
2000-02-16 drscholl <drscholl@users.sourceforge.net>
* config.c, main.c, opennap.h:
added listen_addr config variable to specify which interface to listen on
* buffer.c, download.c, util.c:
added better handling for bad input in the download functions
validate_user() should check for at least a valid pointer on the .con member
if its non-null
* buffer.c:
took extraneous assert() out of buffer_consume() to clean up error
messages.
* download.c:
fixed compilation error in queue_limit()
* download.c, main.c, napster.txt, opennap.h, server_login.c:
added support for the user queue limit command (619/620)
added additional debugging in server_login_ack()
2000-02-15 drscholl <drscholl@users.sourceforge.net>
* login.c:
added more debugging check for a duplicat login message sent from clients
* login.c:
added additional debugging output to login() and register_nick()
* main.c:
modified update_stats() to print the current system time
* opennap.h, whois.c, add_file.c, buffer.c, change.c, hash.c, main.c:
win32 port for 0.12
2000-02-14 drscholl <drscholl@users.sourceforge.net>
* AUTHORS, ChangeLog, Makefile.am, Makefile.in, NEWS, announce.c, browse.c, buffer.c, change.c, config.c, db.c, download.c, free_user.c, join.c, login.c, main.c, md5.c, motd.c, network.c, opennap.dsp, opennap.dsw, opennap.h, part.c, part_channel.c, privmsg.c, public.c, remove_connection.c, remove_file.c, resume.c, search.c, server_connect.c, server_login.c, snprintf.c, synch.c, topic.c, upload_complete.c, util.c, whois.c:
win32 port from "Damian Hodgkiss" <mian@thirty4.com>
default client queue length set to 100kbytes
2000-02-13 drscholl <drscholl@users.sourceforge.net>
* opennap.h, public.c, util.c:
fixed broken emote() function to avoid segfaults
2000-02-12 drscholl <drscholl@users.sourceforge.net>
* login.c, main.c, motd.c, napster.txt, opennap.h, public.c:
added support for client request for motd (621)
* main.c, napster.txt, opennap.h, public.c:
added support for the emote (824) command
2000-02-11 drscholl <drscholl@users.sourceforge.net>
* main.c, network.c, opennap.h:
try_connect() needs to bind_interface() before calling connect()
* network.c: oops, busted lookup_ip()
* main.c, network.c:
fixed broken log() format in handle_connection() when printing out the
message received from a client is unknown
* Makefile.am, Makefile.in, main.c:
removed Id: from Makefile.am since it got passed to Makefile.in and was
screwing things up
* server_login.c:
server_login() should send errors using message 0, not 404
* login.c:
added check for a nick with nonprintable ascii chars
2000-02-10 drscholl <drscholl@users.sourceforge.net>
* Makefile.in, add_file.c, download.c:
fixes for download_end() and upload_end() to prevent subtracting from the
counts if the count is 0
2000-02-08 drscholl <drscholl@users.sourceforge.net>
* ChangeLog, Makefile.am, Makefile.in, change.c, main.c, opennap.h, spynap.c:
removed spynap from the distribution
added support for the change email (702) command
* TODO, change.c, main.c, napster.txt, opennap.h:
added support for the change password (701) command
* kill_user.c, login.c, opennap.h, whois.c:
added support for the whowas (605) server response
kill_user() did not skip the colon (:) prefix on the server name
* login.c:
register_nick() had compilation warnings about unused variables `pkt' and `len'
* login.c:
removed spurious colon (:) from the SQL query in reginfo()
the colon (:) before the server name was not skipped in reginfo()
* util.c:
pass_message() should not assert on validate_connection() since it can be
NULL when generating a new message.
* free_user.c, login.c, opennap.h, synch.c, util.c:
need to store the user password in order to do user registration on multiple
servers
2000-02-07 drscholl <drscholl@users.sourceforge.net>
* Makefile.in, configure, configure.in, network.c:
freebsd does not have socklen_t, so add a check for it in configure.in
2000-02-05 drscholl <drscholl@users.sourceforge.net>
* ChangeLog, NEWS, README, TODO, config.c, create_db.sql, login.c, main.c, opennap.h:
added support for account registration
2000-02-04 drscholl <drscholl@users.sourceforge.net>
* Makefile.in, main.c:
change_speed() was not in the lookup table in main.c
* Makefile.in, opennap.h, server_connect.c:
fix to prevent server_connect() from tyring to link the same server twice
* Makefile.in, add_file.c, change.c, configure, configure.in, free_user.c, main.c, napster.txt, opennap.h, remove_file.c, search.c, synch.c, util.c:
removed minidb support.
cleaned up search() routine.
* Makefile.in, add_file.c, change.c, configure, configure.in, free_user.c, main.c, napster.txt, opennap.h, remove_file.c, search.c, synch.c, util.c:
added support for a mini-db instead of MySQL for storing the library.
* main.c, synch.c:
fix to avoid looping endlessly when POLLHUP is set for a client connection.
* main.c, search.c, synch.c, ChangeLog, Makefile.in:
search() should return a 404 error if the search failed
modified synch_server() to first sync the users and channels, then do a bulk
dump of the library table in hopes of improving performance.
2000-02-03 drscholl <drscholl@users.sourceforge.net>
* ChangeLog, Makefile.in, NEWS, add_file.c, configure, configure.in, main.c, metaserver.c, motd.c:
added support for poll() on systems that support it
fixed bug in share_file() where the escaped path was not used in the sql
query to insert the row
fixed bug in share_file() where the information on the file size was not
incorporated into the global stats
* Makefile.in, configure, configure.in, main.c, metaserver.c:
added support for using poll() on systems that support it
* add_file.c:
share_file() forgot to quote the filename in the sql query
fixed compute_soundex() to avoid generates hases over 4 chars long
* ban.c, search.c:
fixed bug in search() when specifying the TYPE field
banlist() should return an empty ban request packet to indicate the end of
the list.
2000-02-02 drscholl <drscholl@users.sourceforge.net>
* ChangeLog, Makefile.am, Makefile.in, change.c, metaserver.c:
change_speed() needs to update the library table to reflect a speed change
* ChangeLog, Makefile.in, README, TODO, ban.c, buffer.c, debug.c, debug.h, free_user.c, hash.c, hotlist.c, kill_user.c, login.c, napster.txt, remove_connection.c, remove_file.c, resume.c, server_connect.c, synch.c, topic.c, util.c, whois.c:
fixes to compile cleanly with debugging turned off (not recommended though)
* Makefile.in, aclocal.m4, configure, configure.in, md5.h, server_login.c, util.c:
finished integration of the md5 routines from GNU md5sum (textutils)
* ChangeLog, Makefile.am, NEWS, global.h, md5.c, md5.h, md5c.c:
removed md5.h, global.h and md5c.c since they don't work on Alpha, switch to
using version from the md5sum program in GNU textutils
* Makefile.in, aclocal.m4, add_file.c, buffer.c, compress.c, configure, debug.c, debug.h, hash.c, hash.h, main.c, metaserver.c, network.c, opennap.h, server_connect.c, server_login.c, util.c:
fixes to compile under RedHat Linux 6.0 (Alpha)
* buffer.c, login.c, main.c, opennap.h:
if a client connects from localhost, the external ip address should be used
so that remote users can connect to their data port
2000-02-01 drscholl <drscholl@users.sourceforge.net>
* synch.c:
fixed synch_user() so that it will not sync users that come from behind
the server we are syncing with
* public.c:
fixed bug in public() where a middle server would rebroadcast all received
messages ending up doubling the messages to clients
* Makefile.am, Makefile.in, buffer.c, free_user.c, main.c, remove_connection.c:
use `unsigned long' instead of ulong for portability
fixed bug in handle_connection() where the call to add_random_bytes had
arguments without con->
server_split was issuing QUIT messages for all users when a server split
happened.
free_user() should check for user->email != 0 before free()ing it
* README, add_file.c, opennap.h, synch.c:
synch_user needed to use the new 10300 (share file) message to sync non-mp3
data.
share_file() now checks to make sure the content-type looks valid by
inspecting the major MIME type
added additional information on the new 10300 message to the README
* ChangeLog, README, add_file.c, db.c, free_user.c, main.c, opennap.h, search.c, spynap.c:
added support for sharing generic media types other than mp3
* Makefile.am, Makefile.in, spynap.c:
added md5 hash checking on downloads to spynap
2000-01-31 drscholl <drscholl@users.sourceforge.net>
* main.c:
assertion in dispatch_command was in error, the length really was 0xee. use
VALID_LEN() to test for buffer overrun instead.
* main.c, util.c:
added additional ASSERT() in dispatch_command() to track down buffer overrun
* buffer.c, free_user.c, ping.c:
free_user() should not remove files from the db when a signal is caught, it
should just free the memory assocated with the structure
fixed bug in buffer_group() where the number of consumed bytes in the next
buffer was not skipped
ping/pong now xmit any optional arguments the clients pass to them
2000-01-30 drscholl <drscholl@users.sourceforge.net>
* buffer.c:
more fixes in attempt to solve the pop_user missing user nick on server
message.
changed buffer_validate() to not try to validate the ->next pointer other
than it is a valid pointer.
* buffer.c, util.c:
buffer_compress() assumed that the input buffer was not already partially
consumed. this should not happen, but it looks like it does in certain
circumstances.
* ChangeLog, add_file.c, buffer.c, main.c, napster.txt, search.c:
changed add_file() to print out errors back the user when a file is not
added to the db.
changed add_file() to use a ulong instead of int for storing the file size.
send_queued_data() did not print out the con->host even though there was a
%s for it, caused a segfault.
changed handle_connection() to ignore message 4 since the new napster
v2.0beta5a sends it before the login command.
search now ignores files belonging to the user who issued the command
2000-01-29 drscholl <drscholl@users.sourceforge.net>
* README, main.c:
handle_connection now prints out the message it received when it errors out
becaues the client is not registered yet.
* add_file.c:
forgot to skip the backslash before sending the path to compute_soundex
compute_soundex should skip nonalpha chars at the beginning of the string
* ChangeLog, README, add_file.c, buffer.c, db.c, search.c:
added support for soundex searches
* Makefile.in, ban.c, login.c, main.c, spynap.c:
login() was checking for CLASS_USER to set con->destroy when a banned user
attempts to log in. It should have been checking for CLASS_UNKNOWN since
the connection is not registered yet.
added some nice output to some of the server numerics to spynap
2000-01-28 drscholl <drscholl@users.sourceforge.net>
* ChangeLog, README, config.c, main.c, opennap.h, sample.conf:
added max_connections config variable
* Makefile.in, buffer.c, debug.c, kill_user.c, login.c, main.c, opennap.h, sample.conf, server_connect.c, server_login.c, util.c:
debug_valid should return 0 on buffer overrun
handler routines should set con->destroy=1 instead of calling
remove_connection() since handle_connection() has a cached copy of the
pointer. this is only necessary when destroying the connection for the
source of the message being processed. destroying other connections is
perfectly fine.
buffer_uncompress() should allocate 1 extra byte similar to buffer_read()
* Makefile.am, Makefile.in, README, add_file.c, announce.c, ban.c, browse.c, buffer.c, change.c, client_quit.c, compress.c, config.c, configure, configure.in, debug.c, debug.h, download.c, hash.c, hotlist.c, join.c, kill_user.c, level.c, list_channels.c, list_users.c, login.c, main.c, metaserver.c, motd.c, muzzle.c, network.c, opennap.h, part.c, patchnap.c, ping.c, privmsg.c, public.c, remove_connection.c, remove_file.c, resume.c, sample.conf, search.c, server_connect.c, server_login.c, spynap.c, spyserv.c, synch.c, topic.c, unmuzzle.c, upload_complete.c, util.c, whois.c:
major rewrite of i/o handling. server->server links are now handled using
a compressed stream.
2000-01-27 drscholl <drscholl@users.sourceforge.net>
* NEWS, TODO, ping.c, sample.conf:
final changes for 0.10 release.
* README, db.c:
primary key() can only be 256 bytes long, so change the nick length to 15
and the filename length to 240.
* ChangeLog, README, add_file.c, config.c, db.c, main.c, opennap.h, sample.conf:
added max_shared variable to control how many files a user can share
(owner,filename) is now the primary key to avoid duplicates.
2000-01-26 drscholl <drscholl@users.sourceforge.net>
* util.c:
max bytes per compression block was still set to debug level
* Makefile.in, config.c, db.c, main.c, opennap.h, part_channel.c, sample.conf, util.c:
fixed bug in calculate_chunk_length() where the size returned was the total
length of the compressed data, and not the region.
added max_compress configuration variable to control the maximum number of
compressed packets to create in a single cycle, to avoid blocking client
connections
* compress.c, db.c, util.c:
added additional error reporting to init_db()
fixed bug in send_queued_data() when only a portion of the send buffer is
compressed
* network.c, util.c:
the length of the compressed packet was 2 bytes too short
moved my_ntoa() to network.c
* README, compress.c, opennap.h, util.c:
compressed_data() did not correctly handle the new packet format
2000-01-25 drscholl <drscholl@users.sourceforge.net>
* Makefile.in, util.c:
fixed send_queued_data() to ensure that compressed packets are less than
65535 bytes long.
* Makefile.in, configure, configure.in, network.c:
COMPRESSDOTO should be set in the check for libz, not /dev/random
* ChangeLog, main.c, network.c, opennap.h:
set SO_KEEPALIVE on tcp sockets to detect dead clients
* ban.c: ban() should notify mods+ of the ban
* ban.c, free_user.c, join.c, muzzle.c, napster.txt, opennap.h, public.c, remove_connection.c, unmuzzle.c, util.c:
various bugfixes.
* main.c:
should ignore EAGAIN on read() without closing the connection
* add_file.c, remove_connection.c:
bug fix in add_file()
* ChangeLog, kill_user.c:
elites should be able to kill other elites
* free_user.c:
fixed memory leak in free_user() where .server was not free'd
* login.c, synch.c, util.c:
sync_user() didn't send a proper user-ip packet
* README, login.c, opennap.h:
changed user-ip message to include the locally connected port and the server
the user is connected to
* Makefile.am, Makefile.in, TODO, login.c, main.c, network.c, opennap.h, server_connect.c, server_login.c:
changed server connect to be nonblocking. new file network.c contains most
of the standard network routines.
* ChangeLog:
updated ChangeLog with today's changes
* download.c, kill_user.c, level.c, main.c, opennap.h, server_connect.c, topic.c:
fixed handle_connection() to not pass 404 messages to peer servers.
added a 404 handler to notify the mods+ of the error message received
added a 607 handler to pass the server message to a remote user
* main.c, util.c:
still more fixes for compressed data.
* compress.c, config.c, main.c, opennap.h, sample.conf, util.c:
added compression_threshold config var (default 8 kbytes) to controll when
compression is applied in order to reduce load
* Makefile.in, main.c, opennap.h, util.c:
more fixes for compressed_data()
* compress.c: fixed bug in compressed_data()
* compress.c, main.c, util.c:
another fix for compressed data packet. the uncompressed lenght was
overwriting the compressed length.
* Makefile.in, sample.conf, util.c:
fixed bug in send_queued_data() when compressing packets
* Makefile.am, Makefile.in:
needed to add compress.o to opennap_DEPENDENCIES to get it to compile
* Makefile.in, TODO:
added rcs id tag to Makefile.am
* compress.c: forgot to add compress.c to cvs
2000-01-24 drscholl <drscholl@users.sourceforge.net>
* Makefile.am, Makefile.in, README, configure.in, sample.conf, synch.c:
sync_user() should not flush data to peer servers now that compression
support is in place, since it will defeat the benefits
sync_user() did not relay the client ip address.
* Makefile.am, Makefile.in, config.c, configure, configure.in, main.c, sample.conf:
fixes for optional compilation with libz, since its not needed for standalone
servers.
* ChangeLog, Makefile.am, Makefile.in, README, config.c, configure, configure.in, main.c, opennap.h, util.c:
added compressed data (10200) message, and "compression_level" variable
* ChangeLog, config.c, main.c, napster.txt, opennap.h, remove_connection.c, resume.c, search.c, server_connect.c, util.c:
added client_queue_length and server_queue_length config variables to tune the
maximum queue lengths allowed
fixed resume messages which used broken sequences %ul and %uh
added max_results server config variable to control the maximum number of
matches returned on a client search
* ChangeLog, Makefile.in, opennap.h, server_connect.c:
added server version (801) support
* TODO, server_connect.c:
fixed test for fields[2] being set to argc==3 in notify_mods() call from
server_connect()
* ChangeLog, Makefile.in, configure, configure.in, main.c, metaserver.c, opennap.h, server_connect.c, util.c:
metaserver should write a \n after the ip:port
send_queued_data() should return without doing anything if there is no data
to send
added check for /dev/random and substitute simple random number generation
on systems without it
* ChangeLog, server_connect.c:
server_connect() should check the return from split_line() to get the number
of arguments
* ChangeLog, Makefile.in, add_file.c, config.c, configure, configure.in, debug.c, debug.h, hotlist.c, join.c, login.c, main.c, napster.txt, opennap.h, part.c, ping.c, privmsg.c, remove_connection.c, resume.c, search.c, server_connect.c, upload_complete.c, util.c, whois.c:
added additional integrity checking to the validate_*() functions in
debug mode
server variables can be dynamically changed using the 810 client message
(colten edwards)
login() should ensure that the given speed is in the 0-10 range
search() was sending the host using %d instead of %lu
CONFIG struct now holds default values for variables, and functions
config_defaults() and free_defaults() is used to manage the memory
added macro VALID_LEN to test a pointer for enough allocated memory
* ChangeLog, config.c, main.c, opennap.h, sample.conf:
added option to specify the maximum number of channels a user may join.
2000-01-22 drscholl <drscholl@users.sourceforge.net>
* README, download.c, opennap.h, util.c, whois.c:
whois prints the dotted-quad form of the ip address, not an integer
* ChangeLog, join.c, main.c, opennap.h:
enforce a 5 channel limit for users
added cl option to allow only privileged users to create channels
* kill_user.c, login.c, util.c, whois.c:
fixed another crash in login()
whois was checking the level of the person getting whois'ed, not the
person issuing the whois
2000-01-21 drscholl <drscholl@users.sourceforge.net>
* TODO, login.c, util.c:
fix for bad password segfault in login
* ChangeLog, hotlist.c, login.c:
hotlist fix for users that are already logged in
* ChangeLog, NEWS, README, login.c:
fixed segfault in login(). split_line() does not write a 0 in the last
element of the arrary, you have to check the return value for the size
* README, main.c, opennap.h, privmsg.c, remove_connection.c, server_connect.c, server_login.c:
added support for the server linking commands
* level.c:
backed out change because you cant set a level >= your own
* level.c:
fix so that users can set others to leech status
* ChangeLog, TODO, ban.c, change.c, download.c, kill_user.c, level.c, login.c, muzzle.c, napster.txt, opennap.h, whois.c:
ban did not record the time of the ban
notify_mods changed to only notify local mods
change data port command was not passed to peer servers
added additional information to whois for moderators
change set level command so that mods+ can change the level of a user below
their level
the 218-221 message were not passed to peer servers
* ChangeLog, Makefile.am, Makefile.in, ban.c, login.c, main.c, opennap.h:
added support for ban, unban and banlist (612, 614, 615, 616, 629)
* README, db.c, login.c, opennap.h:
login should report error on nick already in use to the client before
disconnecting it
2000-01-20 drscholl <drscholl@users.sourceforge.net>
* ChangeLog, README, TODO, announce.c, download.c, hash.h, kill_user.c, level.c, login.c, main.c, muzzle.c, opennap.h, server_connect.c, synch.c, topic.c, unmuzzle.c, whois.c:
changed user level from bitmask to integer.
kill and muzzle operations now notify all mods+
added the wallop command (627)
user levels are now leech, user, moderator, admin and elite.
change server operator to elite instead of admin.
* napster.txt, opennap.h:
added some additional protocol information to napster.txt
* metaserver.c:
fixes for bsdi 4.1. accept's 3rd arg should be socklen_t
* login.c, main.c, opennap.h, server_connect.c:
fixes for compilation under bsdi 4.1
* ChangeLog, configure, configure.in, download.c, main.c, opennap.h, server_connect.c, util.c:
endian checking was made more portable. now use autoconf to define
WORDS_BIGENDIAN where appropriate.
* ChangeLog, main.c:
update_stats() now prints a message to the log with the current total
library size.
* add_file.c, free_user.c, main.c, opennap.h, remove_file.c:
server now stores internal library size in kilobytes to avoid rounding
errors.
* ChangeLog, FAQ, NEWS, README, hash.c, login.c:
channel and user names are now case insensitive.
* ChangeLog, Makefile.am, Makefile.in, configure, configure.in, hotlist.c, join.c, login.c, main.c, metaserver.c, opennap.h, search.c, server_connect.c, util.c:
added additional debugging sanity checking for major structures.
* ChangeLog, Makefile.am, Makefile.in, configure, configure.in, spynap.c:
configure now will look for mysql in /usr/local as well as /usr
* ChangeLog, TODO, hotlist.c, login.c, main.c, napster.txt, opennap.h, spynap.c, util.c:
fixed hotlist bug which crashed the server.
2000-01-19 drscholl <drscholl@users.sourceforge.net>
* ChangeLog, change.c, napster.txt, opennap.h:
added support for the change speed command (700)
* download.c, main.c, napster.txt, opennap.h, spynap.c:
added support for 626 (data port error)
added download support to spynap reference client
2000-01-18 drscholl <drscholl@users.sourceforge.net>
* NEWS, README, spynap.c:
began to add download support to spynap. /search and /browse results are
now cached, and you can do /get <n> to request a file. downloading does not
actually work yet.
2000-01-17 drscholl <drscholl@users.sourceforge.net>
* ChangeLog, README, login.c, main.c, opennap.h, search.c, spyserv.c:
login() did not set the user->host field so transfers between different
machines would fail.
format_request() did not terminate the output string.
added 10013 numeric for passing the ip address of clients to peer servers
2000-01-16 drscholl <drscholl@users.sourceforge.net>
* ChangeLog, download.c, main.c, napster.txt, opennap.h, search.c, spyserv.c, upload_complete.c:
added support for downloading from firewalled clients (500,501)
search patterns need to have %, ', _ and \ quoted in the SQL query
2000-01-15 drscholl <drscholl@users.sourceforge.net>
* ChangeLog, Makefile.am, Makefile.in, download.c, download_ack.c, main.c, napster.txt, opennap.h, spyserv.c, upload_complete.c:
fixed download problem where the 204 message was sending the information
for the person making the request, not the person holding the file.
added -l option to specify the local port on the spyserv agent
* ChangeLog, configure, configure.in, db.c, download.c, download_ack.c, main.c, opennap.h, upload_complete.c:
fixed several of the download numerics since they were not doing what
the protocol specifies.
2000-01-14 drscholl <drscholl@users.sourceforge.net>
* add_file.c, download.c, main.c, opennap.h, util.c:
fixed DOS filename quoting in download()
added SO_REUSEADDR option to main socket
* add_file.c:
single quote needs to be escaped too.
* add_file.c, spynap.c:
DOS backslashes need to be quoted before adding to the SQL database.
* patchnap.c:
offset was off by one in patchnap.c
* ChangeLog:
post release changelog update (oops)
* hotlist.c:
hotlist contains list of CONNECTION, not USER.
* configure, configure.in:
updated configure.in to version 0.07
* AUTHORS, Makefile.am, Makefile.in, NEWS, announce.c, client_quit.c, close_db.c, db.c, debug.c, debug.h, download.c, download_ack.c, free_user.c, hash.c, hash.h, metaserver.c, motd.c, muzzle.c, opennap.h, part_channel.c, patchnap.c, remove_connection.c, remove_file.c, resume.c, server_connect.c, server_login.c, spynap.c, spyserv.c, synch.c, unmuzzle.c, upload_complete.c:
final email address fixes in copyright notices
removed spyserv and spynap from the default build list. now we just include
the sources.
updated to version 0.07.
2000-01-13 drscholl <drscholl@users.sourceforge.net>
* change.c:
forgot to add change.c to the CVS repository
* configure, configure.in, main.c, util.c, NEWS, config.c:
updated some more email addresses in the copyright notices
updated version number to 0.06
* ChangeLog, Makefile.am, Makefile.in, TODO, add_file.c, browse.c, hotlist.c, join.c, kill_user.c, level.c, list_channels.c, list_users.c, login.c, main.c, napster.txt, opennap.h, part.c, ping.c, privmsg.c, public.c, search.c, spynap.c, topic.c, whois.c:
fixed email address in many copyright notices
added support for the change data port (703) command
added #define for HANDLER to be used as a prototype for all protocol handler
routines
2000-01-12 drscholl <drscholl@users.sourceforge.net>
* TODO, debug.h, hash.h, main.c, opennap.h, spynap.c:
fixed copyright notices on some files.
fixed segmentation fault in new read() loop in handle_connection().
fixed broken /browse command in spynap.
* ChangeLog, Makefile.in, main.c, opennap.h, remove_connection.c:
each connection is now given its own input buffer so that we can use
nonblocking read() calls.
* ChangeLog, TODO, add_file.c, remove_file.c, search.c, spynap.c, util.c:
array_add() should not assert if the list is empty
server was reporting library size in MB, not GB
search strings should have spaces converted to % for SQL queries
added a /msg command to the spynap sample client
2000-01-11 drscholl <drscholl@users.sourceforge.net>
* spynap.c:
Updated the spynap client application to add a few more text commands for
easier use in testing other numerics.
* AUTHORS, NEWS, add_file.c, announce.c, browse.c, client_quit.c, config.c, db.c, debug.c, download.c, download_ack.c, free_user.c, hash.c, hotlist.c, join.c, kill_user.c, level.c, list_channels.c, list_users.c, login.c, main.c, metaserver.c, motd.c, muzzle.c, napster.txt, part.c, part_channel.c, ping.c, privmsg.c, public.c, remove_connection.c, remove_file.c, resume.c, search.c, server_connect.c, server_login.c, spynap.c, spyserv.c, synch.c, topic.c, unmuzzle.c, upload_complete.c, util.c, whois.c:
Updated copyright notice to reflect new year and new email address.
* .indent.pro, FAQ, client_quit.c, create_db.sql, global.h, hotlist.c, level.c, list_channels.c, list_users.c, md5.h, md5c.c, metaserver.c, muzzle.c, napster.txt, ping.c, remove_file.c, resume.c, sample.conf, sample.motd, server_connect.c, server_login.c, spynap.c, spyserv.c, synch.c, topic.c, unmuzzle.c, upload_complete.c, util.c:
Initial import of the opennap-0.05 work in progress.
* .indent.pro, FAQ, client_quit.c, create_db.sql, global.h, hotlist.c, level.c, list_channels.c, list_users.c, md5.h, md5c.c, metaserver.c, muzzle.c, napster.txt, ping.c, remove_file.c, resume.c, sample.conf, sample.motd, server_connect.c, server_login.c, spynap.c, spyserv.c, synch.c, topic.c, unmuzzle.c, upload_complete.c, util.c:
New file.
* add_file.c, announce.c, browse.c, close_db.c, config.c, configure, configure.in, db.c, debug.c, debug.h, download.c, download_ack.c, free_user.c, hash.c, hash.h, install-sh, join.c, kill_user.c, login.c, main.c, missing, mkinstalldirs, motd.c, opennap.h, part.c, part_channel.c, privmsg.c, public.c, remove_connection.c, search.c, whois.c:
Initial import of the opennap-0.05 work in progress.
* add_file.c, announce.c, browse.c, close_db.c, config.c, configure, configure.in, db.c, debug.c, debug.h, download.c, download_ack.c, free_user.c, hash.c, hash.h, install-sh, join.c, kill_user.c, login.c, main.c, missing, mkinstalldirs, motd.c, opennap.h, part.c, part_channel.c, privmsg.c, public.c, remove_connection.c, search.c, whois.c:
New file.
* INSTALL, Makefile.am, NEWS, TODO, aclocal.m4:
Initial import of the opennap-0.05 work in progress.
* INSTALL, Makefile.am, NEWS, TODO, aclocal.m4:
New file.
* AUTHORS, COPYING, ChangeLog, Makefile.in, README:
Initial import of the opennap-0.05 work in progress.
* AUTHORS, COPYING, ChangeLog, Makefile.in, README:
New file.